java - Joda 时区与地区/城市解析

标签 java timezone jodatime date-parsing

import org.joda.time.DateTimeZone;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        System.out.println(
                DateTimeZone.forID("Europe/Copenhagen")
        );

        DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm dd MM YY Z");
        System.out.println(
                formatter.parseDateTime("19:30 29 8 11 Europe/Copenhagen")
        );
    }
}

我希望它能解析哥本哈根时区的日期,但它失败了:

Europe/Copenhagen
Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "19:30 29 8 11 Europe/Copenhagen" is malformed at "Europe/Copenhagen"
    at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:683)
    at Main.main(Main.java:13)

为什么?

最佳答案

查看 JodaTime DateTimeFormat javadocs对于 DateTimeFormat,您应该使用 ZZZ 而不是 Z

很容易错过,因为该文档中的表格只显示 Z。页面下方是这样的,“Zone: 'Z' outputs offset without a colon, 'ZZ' outputs the offset with a colon, 'ZZZ'或更多输出区域 ID。”

关于java - Joda 时区与地区/城市解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6973388/

相关文章:

java - 如何在Java中使用spark ml执行多标签分类

java - 如何在gradle中分别调用任务

java - 如何使用Pattern.compile的参数?

php - 处理不同时区的PHP服务器和MySQL服务器

java - 即时与 ZoneDateTime。转换到另一个时区

java - 如何将 Joda Localdate 转换为 Joda DateTime?

java - 使用 Spring Boot 和 Spring Data JPA 的 RESTful API 中的复合关系

ios - Swift 使字符串中的 NSDate 无法按预期工作

java - 使用 joda time 提取秒数直到午夜

java - 带小时和秒的 RRULE google-rfc-2445