我有一个名为 data
的变量,它具有以下格式的今天日期:Thu May 24 13:14:41 BRT 2018
。然后我将其格式化为MySQL的日期类型格式,即yyyy-MM-dd
。这段代码可以做到这一点:
String dataFormatada = new SimpleDateFormat("yyyy-MM-dd").format(data);
我想要做的是将其恢复为日期类型。我尝试过一些方法,但没有成功。主要解决方案是按照此其他 Stack Overflow's questioin 中所述进行操作。 ,通过一点修改,我得到了我想要的东西:
String target = "Thu Sep 28 20:29:30 JST 2000";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date result = df.parse(target);
System.out.println(result);
但是它不起作用,因为我在尝试解析时收到此错误:
java.text.ParseException: Unparseable date: "Thu Sep 28 20:29:30 JST 2000"
所以我不能只重新格式化data
变量,也不能将dataFormatada
恢复为日期格式。如何将 dataFormatada
转换为格式为 yyyy-MM-dd 的日期类型?
最佳答案
您的目标字符串格式为 EEE MMM dd HH:mm:ss zzz yyyy
格式。因此,您需要使用 EEE MMM dd HH:mm:ss zzz yyyy
作为模式,而不是 yyyy-MM-dd
。
String target = "Thu Sep 28 20:29:30 JST 2000";
DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
Date result = df.parse(target);
System.out.println(result);
如果您想将日期对象(即结果)转换为yyyy-MM-dd
,请使用以下代码。
DateFormat dfDateToStr = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
String formattedDate = dfDateToStr.format(result);
System.out.println("Formatted Date String : "+formattedDate);
关于java - 从字符串解析为日期会引发无法解析的日期错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50514017/