当我这样做时:
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
c.set(9999, 11, 31, 0, 0, 0);
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yy HH.mm.ss.SSSSSSSSS a");
String date = formatter.format(c.getTime());
assertEquals("31-Dec-99 00.00.00.000000000 AM", date);
我得到这个:99 年 12 月 30 日 18.00.00.000000318 PM
如何获得我想要的时间?
最佳答案
您需要设置formatter's time zone以及在执行格式化之前。
formatter.setTimeZone(c.getTimeZone());
否则将使用平台默认时区。
<小时/>与具体问题无关,日历不保存纳秒,因此格式化后该部分可能仍然有点偏差。
关于java - 如何将 Java 日历设置为特定的 UTC 时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14404789/