【问题标题】:What is the correct format to use with joda time datetime formatter in Mirth?在 Mirth 中与 joda time datetime formatter 一起使用的正确格式是什么?
【发布时间】:2021-03-22 07:41:39
【问题描述】:

在 HL7 日期时间值之一中,我得到像 202009010935-0400 这样的值,我正在尝试使用 joda time 来解析它并转换为 yyyy-MM-dd'T'HH:mm:ss 格式。使用这行代码

var instant = org.joda.time.format.DateTimeFormat.forPattern('yyyyMMddHHmm-ZZZZ').parseMillis(new String(date));
var value = org.joda.time.format.DateTimeFormat.forPattern(yyyy-MM-dd'T'HH:mm:ss).print(instant);

抛出异常

JavaException: java.lang.IllegalArgumentException: Invalid format: "202009010935-0400" is malformed at "-0400"

由于我无法控制发送的数据值,在这种情况下使用什么正确格式?

我尝试过使用yyyyMMddHHmm-HHmm,但这只是将日期转换为2020-09-01T04:00

【问题讨论】:

    标签: jodatime mirth


    【解决方案1】:

    您应该使用yyyyMMddHHmmZ 模式并执行以下操作:

    演示:

    import org.joda.time.DateTime;
    import org.joda.time.format.DateTimeFormat;
    import org.joda.time.format.DateTimeFormatter;
    
    public class Main {
        public static void main(String[] args) {
            String dateTimeStr = "202009010935-0400";
            DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyyMMddHHmmZ").withOffsetParsed();
            DateTime dateTime = dtf.parseDateTime(dateTimeStr);
            System.out.println(dateTime);    
        }
    }
    

    输出:

    2020-09-01T09:35:00.000-04:00
    

    查看DateTimeFormat 了解有关模式的更多信息。

    注意:Home Page of Joda-Time查看以下通知

    Joda-Time 是 Java 的事实上的标准日期和时间库 在 Java SE 8 之前。现在要求用户迁移到 java.time (JSR-310)。

    使用java.time (JSR-301) API:

    import java.time.OffsetDateTime;
    import java.time.format.DateTimeFormatter;
    
    public class Main {
        public static void main(String[] args) {
            String dateTimeStr = "202009010935-0400";
            DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuuMMddHHmmZ");
            OffsetDateTime odt = OffsetDateTime.parse(dateTimeStr, dtf);
            System.out.println(odt);
        }
    }
    

    输出:

    2020-09-01T09:35-04:00
    

    Trail: Date Time 了解现代日期时间 API。

    【讨论】:

      猜你喜欢
      • 2015-01-24
      • 2011-07-13
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 2023-04-09
      • 2015-05-22
      相关资源
      最近更新 更多