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 楼答案
yyyy-mm-dd使用的是小时的分钟,而不是月份(模式符号M)。请参阅pattern symbols on Joda-Time-page的文件
用错误的模式解析“2013-01-28”会产生“2013-01-28T00:01:00.000+01:00”。你认为分钟等于1吗?如果解析器找不到月份信息(在我看来不明智),那么一月似乎是一个默认值