有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java joda时间格式化程序解析yyyyymmdd(额外一小时)

我正在使用Joda time DateTimeFormatter以yyyy-mm-dd字符串格式创建一个新的datetime对象。调用DateTime日期=格式化程序时。解析(字符串)我得到一个带有额外时间的DateTime对象。我住在UTC+1。如何在不添加小时数的情况下格式化字符串datetime

 String date = "2013-01-28";

 DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-mm-dd");
 DateTime date = formatter.parseDateTime(date);
 date.ToString() = 2013-01-28T00:01:00.000+01:00
 expected = 2013-01-28T00:00:00.000+01:00

另外,在代码的后面,我比较了两个DateTime对象。这个解析器是yymmdd格式的,它不会增加一个小时

String date = "130102"

 DateTimeFormatter format = DateTimeFormat.forPattern("yyMMdd");
 DateTime datetime = format.parseDateTime(date);
 datetime.toString = 2013-01-02T00:00:00.000+01:00

共 (1) 个答案

  1. # 1 楼答案

    yyyy-mm-dd使用的是小时的分钟,而不是月份(模式符号M)。请参阅pattern symbols on Joda-Time-page的文件

    用错误的模式解析“2013-01-28”会产生“2013-01-28T00:01:00.000+01:00”。你认为分钟等于1吗?如果解析器找不到月份信息(在我看来不明智),那么一月似乎是一个默认值