java - SimpleDateFormat 无法解析的日期 如果语言环境为 ES,则会出现错误。推特 "Created_At"

标签 java android twitter locale simpledateformat

我正在尝试将 Twitter“created_at”转换为阿根廷日期时间。 如果我这样做:

final String TWITTER="EEE MMM dd HH:mm:ss";
        SimpleDateFormat sf = new SimpleDateFormat(TWITTER,new Locale("en"));  

效果很好。

但是如果我更改为 Locale("es")Locale("es","ES")Locale("es","AR”), 我收到此错误:

07-01 11:09:29.153: W/System.err(331): java.text.ParseException: Unparseable date: "Tue Jul 01 13:57:36 +0000 2014"

为什么我无法将日期转换为本地时间?

编辑:

根据 Sotilios Delimanoris 告诉我的关于使用两种 SimpleDateFormat 的内容,一种用于解析,另一种用于格式,我已经这样做了:

final String TWITTER="EEE MMM dd HH:mm:ss";  
SimpleDateFormat sf = new SimpleDateFormat(TWITTER,new Locale("en")); 
Date mystring = sf.parse(text); 
final String TWITTER2="dd-MM HH:mm:ss";  
SimpleDateFormat sf2 = new SimpleDateFormat(TWITTER2,new Locale("es","AR")); System.out.println(sf2.format(mystring)); 
return sf2.format(mystring); 

这是输出:

I/System.out(688): 01-07 18:41:31

一切正常,除了时间以外,它显示的时间比应有的时间多了 2 小时。 –

我尝试过这样设置时区:

sf2.setTimeZone(TimeZone.getTimeZone("UTC-3"));

现在更糟了,显示22:41:31

编辑2:

终于,它可以工作了。不知道为什么,但使用:

sf2.setTimeZone(TimeZone.getTimeZone("GMT-6"));

工作正常(在阿根廷仍然不是 GMT-6)

谢谢

最佳答案

您正在尝试解析我认为是西类牙语的日期字符串,但 TueJul 不是西类牙语中的短单词。它们是英语单词的缩写。

关于java - SimpleDateFormat 无法解析的日期 如果语言环境为 ES,则会出现错误。推特 "Created_At",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24512751/

相关文章:

java - 异常 :org. apache.hadoop.hbase.masternotrunningexception

php - 使用 PHP 和 Curl 隐藏响应

javascript - facebook 和 twitter iframe 请求访问设置 'document.domain' 错误

java - GWT 远程过程调用。 onSuccess() 方法何时调用?

java - 无法排除小于当前日期的日期

Java Android : How to force only one instance of an app (singleTop not working correctly)?

java - 有趣的 HashMap 实现(build 1.7.0_25-b17)

android - 通过repo获取android源码

android - 在下拉模式下单击展开时微调器崩溃但在对话框模式下工作(仅在 API < 26 中)

ios - 从 iOS 6 在 Twitter 中发帖