gpt4 book ai didi

java - OffsetDateTime toString() 返回不同格式的日期字符串

转载 作者:行者123 更新时间:2023-11-30 06:42:09 29 4
gpt4 key购买 nike

我有这种格式的日期 yyyy-MM-dd'T'HH:mm:ss'Z',但是当我使用 OffsetDateTime.parse(date) 解析它时; 它通过消除 seconds

返回字符串

逻辑:从日期中获取日期,如果是星期六星期日,将日期更改为星期一并返回日期字符串

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);
}

我需要返回与输入格式相同的字符串 yyyy-MM-dd'T'HH:mm:ss'Z'

最佳答案

根据 OffsetDateTime.toString()方法 javadoc 使用值的最短可能格式,而省略的部分隐含为零。 2018-12-30T06:00:00Z 的最短可能格式是 uuuu-MM-dd'T'HH:mmXXXXX 因此跳过秒和纳米:

The output will be one of the following ISO-8601 formats:

  • 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

The format used will be the shortest that outputs the full value of the time where the omitted parts are implied to be zero.

如果您需要精确的格式,请使用具有特定模式的 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));

关于java - OffsetDateTime toString() 返回不同格式的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54010217/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com