我需要将某些字符串日期转换为另一种格式的字符串日期
String current = "Tue Apr 16 10:59:11 EDT 2019";
我想根据格式-“ yyyy-MM-dd'T'HH:mm:ss.SSSXX”获取格式为ISO-8601的结果日期字符串
您能帮我实现这一点吗?
答案 0 :(得分:2)
使用Java8 DateTime API,您可以执行以下操作:
//your input
String date = "Tue Apr 16 10:59:11 EDT 2019";
//create new formatter for parsing your input
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM d HH:mm:ss zzz yyyy", Locale.ENGLISH);
//create new zonedDateTime from parsing an input with provided formatter
ZonedDateTime zonedDateTime = ZonedDateTime.parse(date,formatter);
以您自己的格式获取它:
//format your zonedDateTime with a new provided pattern
String test = zonedDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXX"));
//print it
System.out.println(test);
答案 1 :(得分:0)
java中有一个SimpleDateFormat
,并且那里有一个解析方法
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String dateString = format.format( new Date() );
Date date = format.parse ( "2009-12-31" );
答案 2 :(得分:0)
Java的时间类都没有完全实现ISO 8601,但是您可以尝试使用Java 8:
ZonedDateTime zp = ZonedDateTime.parse(string);
Date date = Date.from(zp.toInstant());
SimpleDateFormat dt1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXX");
System.out.println(dt1.format(date));