gpt4 book ai didi

android - 无法解析的日期异常

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:32 25 4
gpt4 key购买 nike

好吧,我正在尝试从 rss 中获取日期,但我在 logcat 中遇到了这个异常:

E/AndroidNews(  870): Caused by: java.text.ParseException: Unparseable date: "Su
n, 02 Oct 2011 14:00:00 +0100"
E/AndroidNews( 870): at java.text.DateFormat.parse(DateFormat.java:626)
E/AndroidNews( 870): at com.warriorpoint.androidxmlsimple.Message.setDate(Mes
sage.java:57)

我的格式化程序

static SimpleDateFormat FORMATTER = new SimpleDateFormat("yyyy-MM-dd HH:mm");´

我的方法 setDate();

public void setDate(String date) {
this.date=null;

// pad the date if necessary
while (!date.endsWith("00")){
date += "0";
}
try {
this.date = FORMATTER.parse(date.trim());
} catch (ParseException e) {
throw new RuntimeException(e);
}
}

最佳答案

您使用的格式错误,对于“Sun, 02 Oct 2011 14:00:00 +0100”,请改用此格式:

new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.US)

这也会将语言环境强制为(美国)英语,因此日期和月份名称不受设备语言环境的影响,例如在葡萄牙语语言环境中,“Dom”代表“Sun”,“Oct”代表“Out”(我偷看了你的个人资料)。

您问题中的格式只能解析“2011-10-02 14:00”之类的日期。

此外,不要填充日期,让您的格式化程序进行解析。


如果你想以某种方式输出/显示一个java.util.Date,只需创建一个新的SimpleDateFormat(我们称它为displayFmt) 和所需的格式字符串并调用 format() :

String formattedDate = new SimpleDateFormat("dd MM yyyy H").format(date);

这将为您提供今天的“02 10 2011 17”之类的内容,格式为用户/设备的首选语言环境。

请注意,在您的评论中,您说的是 dd mm yyyy h(小写 mh),这会给您“dayOfMonth minutes year hours12"-- 我认为这不是您想要的,所以我将其更改为大写 M 和大写 H 以提供你是“dayOfMonth month year hours24”。

关于android - 无法解析的日期异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7626538/

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