当前时间/日期代码错误



我如何获得当前时间,因为此代码给予(时间 -> thu Jan 01 05:56:27 ACT 1970 ACT)?

DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss.SS"); 
         Date time = new Date(); 
         String currentTime=timeFormat.format(time);
         time=timeFormat.parse(currentTime);
         System.out.println("Time-->"+time);
         salesOrder.setOrderTime(time);

java.util.Date不适合仅存储一天的时间(小时,分钟,秒,毫秒)。Date类是时间戳,它包含自01-01-1970,00:00:00 GMT。

以来的许多毫秒

使用Joda Time库中的LocalTime进行此操作。

注意:您在代码中所做的是首先将Date对象格式化为String,然后再次将其解析回Date,然后丢弃一天,月份,年份的一部分。您最终将是一个Date对象,该对象设置为自01-01-1970,00:00:00:00 GMT。

use DateFormat timeFormat = new SimpleDateFormat(); 

而不是

DateFormat timeFormat = new SimpleDateFormat("HH:MM:ss:SS");

问题是格式化。您尚未提供这一天,年份,这就是为什么它以这种方式行事的原因。或者,您可以使用适当的格式使用:

DateFormat timeFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");

编辑:

尝试以下操作:

 Calendar c = Calendar.getInstance(); 
  c.setTime(time);
  System.out.println(c.get(Calendar.YEAR)+ "  "+c.get(Calendar.MONTH)+ " "+ c.get(Calendar.DAY_OF_MONTH));

time中的 CC_8是使用SimpleDateFormat进行解析/格式化的时间。从calendar object中,您可以获取个人月,日,年,并按照自己喜欢的方式使用它,或者您只需致电c.getTime()即可获得Date object

您的格式仅包含小时和几分钟。只有一天中的一个没有日期组件的时间,DateFormat.parse()不会填写当前日期;它回到了系统的时代"时间零",即1970年1月1日。如果您想要一个可以将约会字符串变成日期对象,则需要包括年度和月份作为小时。

最新更新