我想得到当前的日期,以毫秒为单位,只有年,月和日期。但是当我使用这段代码时:
Calendar cal = Calendar.getInstance();
cal.clear(Calendar.HOUR);
cal.clear(Calendar.MINUTE);
cal.clear(Calendar.SECOND);
cal.clear(Calendar.MILLISECOND);
currentDate = cal.getTimeInMillis();
我仍然可以得到以毫秒为单位的时间。我该如何解决这个问题呢?
发布于 2011-10-28 22:29:56
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
currentDate = cal.getTimeInMillis();
在日历的时区上要小心。
发布于 2011-10-28 22:22:55
如果您只想要相对于GMT的时间,并且显式地只想要毫秒,您可以使用以下命令:
long now = System.currentTimeMillis();
long today = now - now % 86400000;
发布于 2011-10-28 22:13:11
在javadoc中:分别处理HOUR_OF_DAY、HOUR和AM_PM字段,并应用一天中时间的解析规则。清除其中一个字段不会重置此日历的小时值。使用set(Calendar.HOUR_OF_DAY,0)重置小时值。
cal.set(Calendar.HOUR, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
可能还需要设置AM/PM
https://stackoverflow.com/questions/7930351
复制相似问题