Java SimpleDateFormat 像 America/Los_Angeles 一样解析时区

标签 java parsing timezone

我想在 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/

相关文章:

Java 从对象字段构建嵌套 HashMap

c++ - 时间偏移计算偏差一分钟

java - 如何使用runOnUithread运行?

Java IE - 用于 Java 的 Internet Explorer

java - JSlider 最后的值

c# - ASP MVC Web API + EF 中带有时区的日期时间

c++ - 如何获取当前时区?

java - JUnit 测试仅在调用 Assert 后捕获异常

linux - 结合 Netstat 和 PS 的输出 - linux

Java源代码解析