gpt4 book ai didi

android - Android上JodaTime日期时间解析

转载 作者:行者123 更新时间:2023-11-29 21:00:12 25 4
gpt4 key购买 nike

我正在尝试解析日期“10/13/2014 08:06 AM”这是我的代码:

public static LocalDateTime parseDateTime(String dateAndTime) {
try {
if (dateAndTime.contains("-")) {
return LocalDateTime.parse(dateAndTime.toUpperCase(), DateTimeFormat.forPattern("yyyy-MM-dd hh:mm aa"));
//return DateTimeFormat.forPattern("yyyy-MM-dd hh:mm aa").parseDateTime(dateAndTime.toUpperCase());
} else {
return LocalDateTime.parse(dateAndTime.toUpperCase(), DateTimeFormat.forPattern("MM/dd/yyyy hh:mm aa"));
//return DateTimeFormat.forPattern("MM/dd/yyyy hh:mm aa").parseDateTime(dateAndTime.toUpperCase());
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
return null;
}
}

我的解析器失败了:

java.lang.IllegalArgumentException: Invalid format: "10/13/2014 08:06 AM" is malformed at "AM"

请协助调查。

我正在使用 Android 4.4.4 和 JodaTime 2.3

最佳答案

我不知道你的语言环境是什么,但我可以用像 new Locale("hi", "IN") 这样的语言环境重现你的问题(我自己的系统语言环境不同)。因此,您的问题的解决方案是将语言环境指定为英语,因为像“AM”这样的文本是特定于语言环境的,主要用于英语。

LocalDateTime ldt =
LocalDateTime.parse(
dateAndTime.toUpperCase(),
DateTimeFormat.forPattern("MM/dd/yyyy hh:mm aa").withLocale(Locale.ENGLISH));

关于android - Android上JodaTime日期时间解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26348567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com