如何更改日历中的时区而不更改我在java中的时间格式?

时间:2014-10-19 10:21:35

标签: java calendar timezone

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

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

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

这是我的时区变更代码:

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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