我如何获得当前时间,因为此代码给予(时间 -> 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日。如果您想要一个可以将约会字符串变成日期对象,则需要包括年度和月份作为小时。