如何将下面的日期字符串解析为Date对象?
String target = "Thu Sep 28 20:29:30 JST 2000";
DateFormat df = new SimpleDateFormat("E MM dd kk:mm:ss z yyyy");
Date result = df.parse(target);
Run Code Online (Sandbox Code Playgroud)
抛出异常......
java.text.ParseException: Unparseable date: "Thu Sep 28 20:29:30 JST 2000"
at java.text.DateFormat.parse(DateFormat.java:337)
Run Code Online (Sandbox Code Playgroud) 我有一个String包含toString()调用实例的结果java.util.Date.如何将此值解析回Date对象?
Java文档说,toString()将此Date对象转换String为以下形式:
dow mon dd hh:mm:ss zzz yyyy
Run Code Online (Sandbox Code Playgroud)
但当然没有这样的格式标签"dow"或"mon".
有人可以帮我解决这个问题.请注意,不幸的toString()是,这封电话是我无法控制的一段代码.
我必须解析以下日期
2016 年 9 月 30 日星期五 18:31:00 GMT+04:00
并且它不适用于以下模式:
new SimpleDateFormat("EEE MMM dd HH:mm:ss z YYYY", Locale.ENGLISH);
我得到以下日期作为输出:Fri Jan 01 18:31:00 GMT+04:00 2016。
你能告诉我我做错了什么吗?
我的日期类型为“EEE MM DD HH:mm:ss zzz yyyy”(Wed Mar 04 03:34:45 GMT+08:00 2020)和“yyyy-MM-dd hh:mm:ss”(2020-02) -04 02:10:58).如何在java中比较这两个日期?
两个日期都在同一时区。
如何将Mon Jul 01 08:00:00 IST 2019字符串类型的日期“ ” 转换为ISODate“ 2019-07-01T03:00:00.000Z”?
我有一个字符串“ Mon Jan 01 00:00:00 AEDT 1990”,我需要将其转换为“ yyyyMMdd”格式,因此在这种情况下应为“ 19900101”。
我认为可以使用正则表达式来做到这一点,这样我就可以从字符串中提取年份,月份(但需要将Jan转换为01等)和日期,但是我并不精通正则表达式。有人有想法么?
我需要将Java 中的String格式转换"Wed Oct 11 08:27:33 CEST 2023"为最新格式。
我尝试在下面使用,但它抛出解析错误。
String dateString = "Wed Oct 11 08:27:33 CEST 2023";
SimpleDateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss XXX yyyy");
formatter.parse(dateString);
Run Code Online (Sandbox Code Playgroud)
坦白说,我不知道如何处理"CEST"部分
SimpleDateFormat format =new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
format.setTimeZone(TimeZone.getTimeZone("GMT+05:30"));
try {
long diff2=format.parse(accidentReports.getAccidentDate());
}
Run Code Online (Sandbox Code Playgroud)
获取此输出 :: Thu Dec 17 15:37:43 GMT+05:30 5
我的源日期类型是EEE MMM dd HH:mm:ss zzz yyyy. 例如,Sat Dec 12 00:00:00 KST 2020但我的目标日期类型是格式为 Java 日期类型yyyy-MM-dd。所以我制作了将Java String类型转换EEE MMM dd HH:mm:ss zzz yyyy为java util对象的方法。
private static Date getDate(String beforeDate) throws Exception{
SimpleDateFormat readFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
Date rdate = readFormat.parse(beforeDate);
SimpleDateFormat writeFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
String format = writeFormat.format(rdate);
System.out.println(format);
return writeFormat.parse(format);
}
Run Code Online (Sandbox Code Playgroud)
System.out.println(format) line 打印出我期望的正确值。
2020-12-12
2020-12-12
2013-01-01
Run Code Online (Sandbox Code Playgroud)
但是返回值的类型是错误的。该方法的返回值似乎没有受到影响。
System.out.println(getDate("Sat Dec 12 00:00:00 KST 2020"));
Run Code Online (Sandbox Code Playgroud)
上一行Sat …