微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SimpleDateFormat日本时间

如何解决SimpleDateFormat日本时间

我的时间是-> 2020年9月15日11:10:25

我正在使用此代码将其格式化为日语

 timeFormatStr = "YYYY MMMMMMMMMM DD HH:mm:ss z"; 
 SimpleDateFormat sd = new SimpleDateFormat(timeFormatStr,locale);
 timeStr = sdf.format(new Date(time));

timeStr看起来像这样(看起来不正确)。

2020 9月259 23:10:25 UTC

您知道格式字符串应该是什么吗?我检查了语言环境是-ja_JP.eucjp

谢谢

解决方法

YYYY MMMMMMMMMM DD HH:mm:ss z不是日语如何设置日期和时间的格式。您应该使用DateTimeFormatter,然后调用ofLocalizedDateTimewithLocale。这将产生一个格式化程序,该格式化程序以本地日语格式生成字符串。

String formatted = DateTimeFormatter
        .ofLocalizedDateTime(FormatStyle.FULL) // choose a style here
        .withLocale(Locale.JAPANESE)
        .format(new Date(time).toInstant().atZone(ZoneOffset.UTC)); // choose a timezone here
System.out.println(formatted); // 1970年1月1日木曜日 0時00分00秒 Z

您实际上不应再使用Date。您应该直接给DateTimeFormatter一个ZonedDateTime

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。