我想在 Java 中解析以下字符串并将其转换为日期:
DTSTART;TZID=America/Los_Angeles:20140423T120000
我试过这个:
SimpleDateFormat sdf = new SimpleDateFormat("'DTSTART;TZID='Z':'yyyyMMdd'T'hhmmss");
Date start = sdf.parse("DTSTART;TZID=America/Los_Angeles:20140423T120000");
还有这个:
SimpleDateFormat sdf = new SimpleDateFormat("'DTSTART;TZID='z':'yyyyMMdd'T'hhmmss");
Date start = sdf.parse("DTSTART;TZID=America/Los_Angeles:20140423T120000");
但是还是不行。我认为问题出在美国/洛杉矶。 你能帮帮我吗?
谢谢
最佳答案
使用 TimeZone 试试这个.
注意:在执行此操作之前,您必须拆分日期字符串。
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd'T'hhmmss");
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
sdf.setTimeZone(tz);
Date start = sdf.parse("20140423T120000");
在SimpleDateFormat
模式中Z
代表RFC 822 4位时区
有关更多信息,请查看 SimpleDateFormat#timezone .
关于Java SimpleDateFormat 像 America/Los_Angeles 一样解析时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23242211/