我正在尝试转换此字符串:
2011-06-07T14:08:59.697-07:00
Run Code Online (Sandbox Code Playgroud)
到Java日期,到目前为止,这是我做的:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.S");
Date date1 = sdf.parse("2011-06-07T14:08:59.697", new java.text.ParsePosition(0));
Run Code Online (Sandbox Code Playgroud)
几乎一切都很好,除了最重要的部分,时区 !! SimpleDateFormat的问题在于它期望TimeZone in +/-hhmm和我的+/-hh:mm格式.
另外,我不知道为什么,这有效:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.S Z");
Date date1 = sdf.parse("2011-06-07T14:08:59.697 -0700", new java.text.ParsePosition(0));
Run Code Online (Sandbox Code Playgroud)
但这不是(时区之前的空间):
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SZ");
Date date1 = sdf.parse("2011-06-07T14:08:59.697-0700", new java.text.ParsePosition(0));
Run Code Online (Sandbox Code Playgroud)
将此日期2011-06-07T14:08:59.697-07:00转换为Java日期的正确格式是什么?
谢谢你的帮助!
如何使用类Date获取格式为"YYYY-MM-DD 00:00:00.0"的数据(使用这个类非常重要)?
我试着做我能想到的一切:
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
df.format(date)
Run Code Online (Sandbox Code Playgroud)
和
String pattern = "yyyy-MM-dd HH:mm:ss.S";
SimpleDateFormat format = new SimpleDateFormat(pattern);
try {
Date date = format.parse("2011-01-18 00:00:00.0");
} catch (ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
当我使用记录器打印日期时,我得到这种格式"Tue Sep 30 00:00:00 MSK 1913".