java - 如何设置带有 UTC 时间的日历?

标签 java date utc

海报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/

相关文章:

java - Spring 安全: I can save data despite the session is timed out

Java 双重相等

ruby-on-rails - 使用 Ruby 日期对象时,是什么导致我的 Ruby on Rails 控制台输出和我的 Firebug 控制台输出之间存在这种差异?

在冬天将夏季日期转换为 utc?

c# - 如何正确使用时区?

java - 如何有效地使用 Enum 对象作为 Map 数据结构中的键?

java - 无法在java中计算乘积、商和差

javascript - 转换一年中的某一天至今

git - 获取git标签的时间和日期

php - 根据服务器 UTC 偏移量和用户 UTC 偏移量更改当前用户时区