San*_*uys 5 java parsing android simpledateformat
DateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy");
sdf.parse("Sun Dec 13 10:00:00 UTC 2009")
Run Code Online (Sandbox Code Playgroud)
结果
java.text.ParseException:Unparseable date:Sun Dec 13 10:00:00 UTC 2009
注意:此代码似乎适用于普通的Java应用程序,但似乎在Android上失败.
它不适合我 - 也许您的默认语言环境使用不同的月份名称?指定格式的区域设置.
// Will definitely work
DateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy",
Locale.US);
// Will definitely not work
DateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy",
Locale.FRANCE);
// Might work - depends on default locale
DateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy")
Run Code Online (Sandbox Code Playgroud)
(问题是一周中的日期和一年中的几个月的名称,这显然是特定于文化的.日期和时间分隔符也可能不同.)
编辑:你还有问题,这很奇怪.只是为了检查,请尝试运行以下简短但完整的程序:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;
public class Test {
public static void main(String[] args) throws Exception {
DateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy",
Locale.US);
sdf.parse("Sun Dec 13 10:00:00 UTC 2009");
}
}
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,请尝试取出模式和文本的时区部分.我想知道它是否有问题.
编辑:如果Android SimpleDateFormat实现无法解析时区,您可以使用:
text = text.replace(" UTC ", " ");
Date parsed = sdf.parse(text);
Run Code Online (Sandbox Code Playgroud)
...当然,已将解析器上的时区设置为UTC.您可能希望首先检查它是否包含 "UTC",以防您的数据格式发生变化.
| 归档时间: |
|
| 查看次数: |
507 次 |
| 最近记录: |