我有这种格式的日期yyyy-MM-dd'T'HH:mm:ss'Z'
,但是当我使用OffsetDateTime.parse(date);
它解析它时,它通过消除返回字符串seconds
逻辑:从日期获取日期,如果是Saturday
或Sunday
将日期更改为星期一并返回日期字符串
String date = "2018-12-30T06:00:00Z";
System.out.println(date);
try {
OffsetDateTime dateTime = OffsetDateTime.parse(date);
System.out.println(dateTime); //2018-12-30T06:00Z
DayOfWeek day = dateTime.getDayOfWeek();
// check if price change date is Sunday or Saturday and change it to Monday
if (day.equals(DayOfWeek.SATURDAY) || day.equals(DayOfWeek.SUNDAY)) {
String finalDateTime = dateTime.with(TemporalAdjusters.next(DayOfWeek.MONDAY)).toString();
System.out.println(finalDateTime); //2018-12-31T06:00Z
}else {
System.out.println(date);
}
}catch(Exception ex) {
System.out.println(ex);
System.out.println(date);
}
Run Code Online (Sandbox Code Playgroud)
我需要以相同的输入格式返回字符串 yyyy-MM-dd'T'HH:mm:ss'Z'
Kar*_*cki 10
根据OffsetDateTime.toString()
javadoc 方法,使用该值的最短格式,而省略部分隐含为零。尽可能短的格式2018-12-30T06:00:00Z
是uuuu-MM-dd'T'HH:mmXXXXX
这样的秒和毫微秒跳过:
输出将是以下 ISO-8601 格式之一:
- uuuu-MM-dd'T'HH:mmXXXXX
- uuuu-MM-dd'T'HH:mm:ssXXXXX
- uuuu-MM-dd'T'HH:mm:ss.SSSXXXXX
- uuuu-MM-dd'T'HH:mm:ss.SSSSSSXXXXX
- uuuu-MM-dd'T'HH:mm:ss.SSSSSSSSSXXXXX
所使用的格式将是输出完整时间值的最短格式,其中省略部分隐含为零。
如果您需要精确的格式,请使用DateTimeFormatter
具有特定模式的实例来输出日期:
String date = "2018-12-30T06:00:00Z";
OffsetDateTime dt = OffsetDateTime.parse(date);
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
System.out.println(fmt.format(dt));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14480 次 |
最近记录: |