SimpleDateFormat抛出ParseException,错误偏移为0
以下代码有什么问题? 它抛出一个ParseException,错误偏移量为0。
final DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy"); df.parse("Thu Jan 23 14:24:47 2014");
如果在构造格式化程序时没有为格式化程序指定Locale
,它将使用您的默认Locale
,这显然不会用英语拼写日期和月份。
因此,为格式化程序指定一个。
final DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy", Locale.UK);
你的语言环境是"EN"
吗? 如果您使用英文名称作为日期,请确保使用该区域设置
SimpleDateFormat
绝对是对语言环境敏感的。 某些字段(如小时和分钟)与区域设置无关。
SimpleDateFormat
还支持本地化的日期和时间模式字符串。 在这些字符串中,上述模式字母可以用其他依赖于语言环境的模式字母替换。SimpleDateFormat
不处理模式字母以外的文本本地化; 这取决于class级的客户。
或者,您可以使用本地化友好的DateFormat#getDateInstance()
工厂方法,因为:
public SimpleDateFormat(String pattern, Locale locale)
使用给定模式和给定语言环境的默认日期格式符号构造
SimpleDateFormat
。 注意:此构造函数可能不支持所有语言环境。 要获得完整覆盖,请使用DateFormat
类中的工厂方法。
资料来源: https : //stackoverflow.com/a/5174712/2591612