Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不更改java中的时间格式的情况下更改日历中的时区?_Java_Calendar_Timezone - Fatal编程技术网

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

如何在不更改java中的时间格式的情况下更改日历中的时区?,java,calendar,timezone,Java,Calendar,Timezone,我在java中遇到了一个问题。我的java程序中有一个日历,我想将时区设置为本地时区。 我可以做到这一点,它的工作非常好。我的问题是,当我将日历时间格式中的时区从24小时改为12小时时,我不想这样 我的问题是如何在不更改java时间格式的情况下更改日历中的时区? 这是我的时区更改代码: public static Calendar setTimeZoneToTehran(Calendar calendar) { TimeZone timeZoneOfTehran = TimeZo

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

我可以做到这一点,它的工作非常好。我的问题是,当我将日历时间格式中的时区从24小时改为12小时时,我不想这样

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

这是我的时区更改代码:

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

简单想想,如果您使用时间格式来读取/解析数据,您可以使用SimpleDataFormat将其转换为所需的格式

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

正如@devilpreet已经说过的,日历中的格式只是额外的额外功能。此类用于保存有关日期和时间的信息,日期的格式封装在
SimpleDateFormat
类中


此外,考虑使用或java(时间从java 8)而不是<代码> java .UTL.Calase<代码>(在一些圆中使用java. UTILLATE和DATE被认为是一个坏的实践)。p> DataFormat返回字符串。我希望在日历中执行此操作。了解此日历的操作会有所帮助,因为calendar类不用于格式化目的。