海报here说 Date 总是在UTC时间。但是,如果我创建一个 Date(),创建一个日历,并使用日期设置日历时间,则该时间仍然是我的本地时间(而且我不是 UTC 时间。 我已经通过在循环中打印出日历的日期来测试这一点,每个循环减去一个小时。这里是 5 月 19 日晚上 11 点,需要 24 个循环才能将日期更改为 5 月 18 日。目前是世界标准时间下午 1 点,所以如果日历设置正确,它只需要 14 个循环。
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
int index = 0;
for(; index > -30; index--)
{
System.out.println(index);
System.out.println(dateFormatter.format(calendar.getTime()));
System.out.println();
calendar.add(Calendar.HOUR, -1);
}
最佳答案
java.util.Calendar
有一个静态工厂方法,它需要一个时区。
Calendar.getInstance(java.util.TimeZone)
所以你可以说:
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
关于java - 如何设置带有 UTC 时间的日历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6059207/