我的字符串格式的时间戳记为“2017年2月23日星期四04:56:38 GMT”。那么,如何将此字符串时间戳转换为“2017-02-23 04:56:38.0”格式。我试过链接java converting date in string format to timestamp。但面临转换错误。 我的示例代码如下。如何将字符串时间戳转换为java.sql.Timestamp?
String str = "Thu, 23 Feb 2017 04:56:38 GMT";
SimpleDateFormat sdf1 = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss a");
Date date = null;
try {
date = (Date) sdf1.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Date Object:" + date);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("Formatted Date:" + sdf2.format(date));
错误:java.text.ParseException:无法解析的日期: “星期四,2017年2月23日四点56分38秒GMT” 在java.text.DateFormat.parse(DateFormat.java:366)
[SimpleDateFormatter](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)> a | Am/pm marker |文字| PM,所以你使用AM/PM标记来解析时区... – Fildor
@Fildor,你是对的。在simpleDateformat中将a更改为z后,它工作正常。谢谢 – Jay
请参阅[我的答案](http://stackoverflow.com/a/39281606)上的重复问题。 –