【发布时间】:2014-10-01 09:25:26
【问题描述】:
这是我的代码
TimeZone timeZone = TimeZone.getTimeZone("UTC");
Calendar calendar = Calendar.getInstance(timeZone);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.HOUR_OF_DAY, 0);
Timestamp start = new Timestamp(calendar.getTime().getTime());
但时间戳结果例如 = 2014-09-30 02:00:00.0 我无法将小时数设置为 0。
任何建议。
【问题讨论】:
-
那么结果
"2014-09-30 02:00:00.0"是如何构造的?很可能是使用不同时区(不是 UTC)的格式化程序。 -
设置小时为 22 和 DAY_OF_MONTH 为 DAY_OF_MONTH -1
-
我建议您使用 joda-time 库来解决此类问题:joda.org/joda-time 这样您就可以通过调用 DateTime yourDateTime = DateTime.now().withSecondOfMinute(0 ).withMinuteOfHour(0).withHourOfDay(0);要检索您想要的日历对象,您可以在 joda time 日历中检查此方法:joda-time.sourceforge.net/api-release/org/joda/time/base/…