2014-10-19 14 views
0

我在java中遇到问题。我的Java程序中有一个日历,我想将时区设置为当地时区。
如何更改日历中的时区而不更改我在java中的时间格式?

我能做到这一点,它工作得很好。我的问题是,当我在日历时间格式中更改时区时,从24H更改为12H,我不希望这样!

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

这是我的时区变化代码:

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

回答

1

只是一个快速的思想,如果你正在使用时间格式读取/解析目的,你可以使用的SimpleDateFormat到所需的格式。

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

DataFormat返回一个字符串。我想在日历中这样做。 – arVahedi 2014-10-19 10:47:25

+0

知道你想用这个日历做什么将会有所帮助,因为Calendar类不适用于格式化目的。 – devilpreet 2014-10-19 10:52:29

0

由于@devilpreet已经说过,在日历中格式化只是额外的奖金功能。本课程旨在保留有关日期和时间的信息,日期格式包含在SimpleDateFormat类中。

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