【发布时间】:2016-12-26 12:18:21
【问题描述】:
我正在尝试使用 SimpleDateFormat 将字符串解析为日期,但它生成了错误的日期值。
String dataNascimentoValue = "Thu Jan 01 00:00:00 GMT 1970";
SimpleDateFormat converter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
Date date = new Date();
converter.setLenient(false);
date = converter.parse( dataNascimentoValue ); //at this moment It generates //a wrong Date: Wed Dec 31 19:00:00 EST 1969
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String formatedDate = formatter.format( date );
我已经尝试在 SimpleDateFormat 中设置区域设置,但没有成功。 我想将字符串解析为日期,因为我需要在之后对其进行格式化。
有什么帮助吗?
【问题讨论】:
-
您确定屏幕截图中的值吗?使用
new Date()创建的实例如何将 1969 作为年份的日期作为值?? -
它没有这个值,但是它从以下行获取这个值:“date = converter.parse(dataNascimentoValue);”这是我的问题,在这一行之后,当我使用这个“.parse()”方法时,我的 Date 的值取了一个错误的值。
-
仅供参考,麻烦的旧日期时间类,如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat现在是 legacy,被 Java 8 和 Java 中内置的 java.time 类所取代9. 见Tutorial by Oracle。
标签: java date parsing simpledateformat