【发布时间】:2013-07-01 11:40:03
【问题描述】:
我需要在“EDT”时区获取当前时间。我得到了当前时间并将其格式化为“EDT”,我得到了我想要的时间。但是,当我尝试将其解析为“EDT”时区中的日期时,在解析为日期后,我仍然以“IST”格式获取时间。我不知道我做错了什么。
Date date = new Date();
String format = "MM/dd/yyyy hh:mm:ss Z";
DateFormat formatter = new SimpleDateFormat(format);
formatter.setTimeZone(TimeZone.getTimeZone("America/New_York"));
String dateString = formatter.format(date);
System.out.println(dateString);
try { System.out.println(formatter.parse(dateString));
}
catch (ParseException e) {
e.printStackTrace();
}
【问题讨论】:
-
EDT 不是时区。它是东部时区的一部分,但一年中的大部分时间都没有生效。男人的问题是你仍然打印出
Date.toString,它总是使用系统默认时区。Date值没有时区。 -
日历实例 = Calendar.getInstance(TimeZone.getTimeZone("America/New_York")); System.out.println(instance.getTimeZone()); System.out.println(instance.getTime()); 输出: 东部标准时间 Mon Jul 01 18:02:10 IST 2013
-
推测“东部标准时间”是
TimeZone.toString()的结果。我之前的评论解释了 IST 部分。