我从EST
中的服务器获取了一个日期字符串,因此我将其转换为
示例日期2013-04-16T11:56:07.15
incidentDate = l.item(0).getTextContent();
DateFormat dformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS",Locale.US);
dformat.setTimeZone(TimeZone.getTimeZone("America/New York"));
Date timestamp;
try
{
timestamp = dformat.parse(incidentDate);
incidentDateLong = timestamp.getTime();
}
catch (ParseException e1) {
e1.printStackTrace();
}
返回的时间戳为1366113367015
如果我将其插入本网站的转换器中以检查日期
http://www.ruddwire.com/handy-code/date-to-millisecond-calculators/
毫秒似乎不是正确的日期,它给了我Tue Apr 16 2013 07:56:07 GMT-0400 (Eastern Daylight Time)
这不是从服务器发送给我的。
当我转换日期时,它会将日期拉回到实际日期之后
Date incDate = new Date(dateInMili);
DateFormat dformat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a",Locale.US);
String dateStr = dformat.format(incDate);
格式化程序出了什么问题?我不明白这个问题
答案 0 :(得分:2)
这是问题所在:
TimeZone.getTimeZone("America/New York")
这不是有效的时区ID。你想要:
TimeZone.getTimeZone("America/New_York")
请注意下划线。就个人而言,我认为getTimeZone
没有表明它实际上没有找到你所要求的时区,这是一种耻辱,但很长一段时间都是如此:(