【问题标题】:How to change time zone in calendar without changing my time format in java?java - 如何更改日历中的时区而不更改我在java中的时间格式?
【发布时间】:2014-10-19 10:21:35
【问题描述】:

我在 java 中有一个问题。我的 java 程序中有一个日历,我想将时区设置为我的本地时区。

我能够做到这一点,而且效果很好。我的问题是,当我将日历时间格式的时区从 24H 更改为 12H 时,我不想要这个!

我的问题是如何在不更改 java 中的时间格式的情况下更改日历中的时区?

这是我更改时区的代码:

public static Calendar setTimeZoneToTehran(Calendar calendar) {
        TimeZone timeZoneOfTehran = TimeZone.getTimeZone("Asia/Tehran");
        calendar.setTimeZone(timeZoneOfTehran);
        return calendar;
}

【问题讨论】:

    标签: java calendar timezone


    【解决方案1】:

    快速思考一下,如果您使用时间格式来读取/解析目的,您可以使用 SimpleDateFormat 到所需的格式。

    Date date = calendar.getTime();
    System.out.println(format.format(date));
    

    【讨论】:

    • DataFormat 返回一个字符串。我想在日历中执行此操作。
    • 知道你想用这个日历做什么会有所帮助,因为 Calendar 类并不用于格式化。
    【解决方案2】:

    正如@devilpreet 已经说过的,日历中的格式化只是额外的奖励功能。此类旨在保留有关日期和时间的信息,日期格式包含在 SimpleDateFormat 类中。

    此外,考虑使用 Joda Time 或 java.time(来自 Java 8)而不是 java.util.Calendar(在某些圈子中使用 java.util.Calendar 和 Date 被认为是一种不好的做法)。

    【讨论】:

      猜你喜欢
      • 2011-02-21
      • 2014-02-16
      • 1970-01-01
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多