gpt4 book ai didi

java - 解析格式化日期在 Java 11 中给出 null,但在 Java 8 中给出正确的输出

转载 作者:行者123 更新时间:2023-12-02 10:40:49 24 4
gpt4 key购买 nike

这是在 Java 8 中正确运行并打印所需输出的代码。

import java.util.*;
import java.text.DateFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;

public class Java11 {

public static void main(String args[]) throws Exception {

// Hong kong timezone ID.
String hongkongTimezone = "Asia/Hong_Kong";
String dateFormat = "MMM dd, yyyy HH:mm:SS";

//Current date of local time zone.
Date date = new Date();

// Current date of HongKong.
Date currentDateHongkong = null;

DateFormat hongkongDateFromat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.US);

// Set hongkong time zone ID.
hongkongDateFromat.setTimeZone(TimeZone.getTimeZone(hongkongTimezone));
String stringFormatDate = hongkongDateFromat.format(date);

currentDateHongkong = new SimpleDateFormat(dateFormat).parse(stringFormatDate, new ParsePosition(0));

System.out.println(currentDateHongkong);
}
}

在 Java 8 上执行时输出如下

Mon Oct 22 06:28:00 IST 2018

但是当我在 Java 11 上执行相同的代码时,我得到 null

最佳答案

您正在使用不同的格式模式进行格式化和稍后的解析。

尝试

currentDateHongkong = hongkongDateFromat.parse(stringFormatDate, new ParsePosition(0));

而不是

currentDateHongkong = new SimpleDateFormat(dateFormat).parse(stringFormatDate, new ParsePosition(0));

关于java - 解析格式化日期在 Java 11 中给出 null,但在 Java 8 中给出正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52927264/

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