我正在使用 JodaTime 2.9.9:
implementation 'joda-time:joda-time:2.9.9'
我在本地 UnitTest ( test
) 和 Instrumented UnitTest ( androidTest
) 中解析相同的日期/时间字符串。
解析代码为:
String testString = "1/25/2018 5:03:12 PM";
System.out.println("FOO - str: '" + testString + "' length: " + testString.length());
DateTime res = DateTime.parse(testString, DateTimeFormat.forPattern("MM/dd/yyyy hh:mm:ss a"));
System.out.println("FOO - prs: " + res.toString());
assertEquals("Month: ", 1, res.getMonthOfYear());
- 在本地 UnitTest (
test
) - 测试通过:
FOO - str: '1/25/2018 5:03:12 PM' length: 20
FOO - prs: 2018-01-25T17:03:12.000Z
- 在 Instrumented UnitTest (
androidTest
) 上 - 测试失败:
java.lang.IllegalArgumentException: Invalid format: "1/25/2018 5:03:12 PM" is malformed at "PM"
at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:945)
为什么?