我有一个包含日期和时间信息的Java对象,例如2010-11-11T09:30:47。我想要编写一个将此日期对象转换为以下格式的方法。“yyyy mm-dd‘yyyy:mm:sss.ss’Z‘
我写了以下代码。
private Calender getValue(Date dateObject) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
String timestamp = formatter.format(dateObject);
System.out.println("Created GMT cal with date [" + timestamp + "]");
}当我运行这个程序时,它正在打印。
创建GMT cal,日期为2010-11-11T04:00:47.000Z
我给的是“2010-11-11 T09:30:47”,我的时间是09:30:47。打印的是"04:00:47“。
为什么时间从9.30变到4.00?
我需要做什么才能得到和我所给予的时间相同的时间。类似2010-11-11 T09:30:47.000Z
非常感谢。
发布于 2013-04-23 09:43:11
您只需删除以下行
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));因为您将时区设置为GMT,而您的时区是GMT + 5.30。这就是为什么当您将时间设置为9.30时,您将得到9.30-5.30= 4.00。
您只需使用以下代码:
private void getValue(Date dateObject)
{
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
String timestamp = formatter.format(dateObject);
System.out.println("Created GMT cal with date [" + timestamp + "]");
}发布于 2013-04-23 09:32:57
你的约会时间可能是你时区的09:30:47。但是您将日期格式配置为GMT时区。因此,它显示的时间,就像它在格林尼治标准时间区。
如果您使用另一种日期格式来解析输入字符串并获得日期对象,请确保此日期格式也使用GMT时区。
要获得更多帮助,请向我们展示如何创建传递给方法的Date对象。
发布于 2013-04-23 09:37:14
删除formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
String timestamp = formatter.format(new Date());
System.out.println("Created GMT cal with date [" + timestamp + "]");https://stackoverflow.com/questions/16165744
复制相似问题