在我的应用程序中,我转换为CST格式的日期字符串(Thu jun 03 10:00 CST 2011),当我转换为日期对象时,它将其转换为当前时区,如Pacific Asia等,但我希望给出相同的字符串,我不希望任何时区更改。
谢谢, 巴鲁。
答案 0 :(得分:1)
您是否使用正确的Locale object进行CST?
“请注意,有许多便捷方法会自动使用默认语言环境...”
答案 1 :(得分:0)
使用下面给出的代码。 locale的使用是可选的,因为它控制日期字符串出现的语言。重要的是正确使用TimeZone。尝试使用Locale和TimeZone的不同设置代码来查看输出如何更改。例如,如果您将区域设置更改为:Locale('fr','FR')
,则程序将输出:13 juillet 2011 08:05:31 PDT
而不是July 13, 2011 8:05:52 AM PDT
。请注意,时区仍然是PDT,因为我们没有更改TimeZone。
Locale locale = new Locale("en","US");
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
Calendar date = Calendar.getInstance(tz,locale);
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
df.setTimeZone(tz);
System.out.println(df.format(date.getTime()));