关于java:将格式为“yyyy-mm-ddTHH:MM:SS +/- 0000”的日期转换为“yyyy-mm-ddTHH:MM:SSZ”

Convert date with format “yyyy-mm-ddTHH:MM:SS+/-0000” to “yyyy-mm-ddTHH:MM:SSZ”

本问题已经有最佳答案,请猛点这里访问。

我需要将日期字符串转换成另一种特定的格式。

例如:我有一个日期可以是YYYY-MM-DDYYYY-MM-DDThh:mm:ss±0000,我需要把它转换成"yyyy-mm-ddTHH:MM:SSZ"

我用Java 8 API尝试了几件事,但找不到出路。


试试这个:(Java)

1
2
3
String input ="2016-10-14T14:19:40-04:00";
String output = ZonedDateTime.parse(input).toInstant().toString();
System.out.println(output); // prints 2016-10-14T18:19:40Z

本厂主要ZonedDateTime因为格式是由parse()ISO_ZONED_DATE_TIME学院使用,所以它在你想要的格式解析输入的描述。

你所请求的输出格式的默认格式发生InstantAS返回),其toString()IU的ISO_INSTANT法格式。

转换之间的两个InstantZonedDateTime使用toInstant()method)将调整必要的时区。


试试这个:

1
2
3
4
5
6
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd"); // or"YYYY-MM-DDThh:mm:ss±0000"
String dateInString ="1993-11-27";
Date date = inputFormat.parse(dateInString);

SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ssZ");
System.out.println(outputFormat.format(date));