Igo*_*Diy 6 java timezone date
为什么当我给GMT时区输入日期字符串时,SimpleDateFormat会解析它并输出EET时区?
public static String DATE_FORMAT="dd MMM yyyy hh:mm:ss z";
public static String CURRENT_DATE_STRING ="31 October 2011 11:19:56 GMT";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATE_FORMAT, Locale.US);
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(simpleDateFormat.parseObject(CURRENT_DATE_STRING));
Run Code Online (Sandbox Code Playgroud)
输出为:2011年10月31日13:19:56 EET 2011而不是2011年10月31日星期一13:19:56 GMT
Jon*_*eet 10
你正在打印出结果Date.toString().A Date没有任何时区概念 - 它只是UTC Unix纪元以来的毫秒数.Date.toString() 始终使用系统默认时区.
请注意,你不应该期待"格林威治标准时间2011年10月31日13:19:56",因为你给出的时间指定格林尼治标准时间为11,而不是13.
如果要使用特定时区进行打印,则应使用其他时区进行DateFormat打印,而不是使用Date.toString().(这样Date.toString()会造成混乱;这真的很不幸.)
| 归档时间: |
|
| 查看次数: |
4906 次 |
| 最近记录: |