我试图将日期转换为Java中的Unix时间戳。我日期的例子是:" Fri Jun 05 15:53:07 PDT 2009"
我的代码是:
DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
Date date = dateFormat.parse(dateString );
long unixTime = (long) date.getTime()/1000;
System.out.println("Unix Time: " + unixTime );
double unixFloat = unixTime;
给定的错误是:
Exception in thread "main" java.text.ParseException: Unparseable date: "Fri Jun 05 15:53:07 PDT 2009"
什么是正确的模式?
答案 0 :(得分:2)
您需要设置Locale
,有些情况下,如果您未设置可能会遇到此类问题的区域设置。
例如:
DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"
,Locale.US);
来自Java
doc。
SimpleDateFormat还支持本地化的日期和时间模式 字符串。在这些字符串中,上述图案字母可以是 替换为其他依赖于语言环境的模式字母。 SimpleDateFormat不处理其他文本的本地化 比模式字母;这取决于班上的客户。
答案 1 :(得分:1)
这可能是一个Locale问题 - Fri
是英语周五,但不是法语或德语,例如:
DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);