我现在想生成一个日期,格式为“2023-05-05T06:52:27.954Z” 用于使用 OffsetDateTime,用于调用 Java 中需要 OffsetDateTime 的方法 但该方法将在仅接受此模式“2023-05-05T06:52:27.954Z”格式的服务器上生成请求 你知道这样做的方法吗?生成的错误是:
expected format Value(Year,4,10,EXCEEDS_PAD)'-'Value(MonthOfYear,2)'-'Value(DayOfMonth,2)'T'Value(HourOfDay,2)':'Value(MinuteOfHour,2)':'Value(SecondOfMinute,2)Fraction(MilliOfSecond,3,3,DecimalPoint)'Z'"<EOL>}"
我尝试过,但无能为力:
String dateStr = ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
OffsetDateTime maintenant = OffsetDateTime.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
非常感谢并致以诚挚的问候
DateTimeFormatter
中的模式是错误的你有……
Z
,它不在要解析的String
中String
以及祖鲁时间 / UTC 的 Z
因此将
'Z'
替换为 X
…
public static void main(String[] args) {
try {
// get "now" in UTC
OffsetDateTime maintenant = OffsetDateTime.now(ZoneOffset.UTC);
// print it formatted implicitly (toString)
System.out.println(maintenant);
// define a formatter for your desired format
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSX");
// print the OffsetDateTime formatted as desired
System.out.println(maintenant.format(dtf));
}
输出(几秒钟前):
2023-10-24T13:56:42.954882Z
2023-10-24T13:56:42.954Z