java - 时间格式最终在生产中发生变化
问题描述
我有以下代码以某种格式获取当前时间。当我在笔记本电脑上测试它时,这在本地工作得很好。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS z");
ZonedDateTime date = ZonedDateTime.now();
String timeStamp = formatter.format(date);
以上在本地工作,时间戳值采用以下格式:2020-02-24 05:23:20.675 MST
但是当我将其推送到生产环境时,格式更改为:2020-02-24 05:23:20.675 -07:00
我无权访问生产设置,处理它的团队位于另一个时区,现在无法获取它们。相信这是他们最后的一些设置,但我能做些什么使格式总是像:2020-02-24 05:23:20.675 MST 吗?
请指教,谢谢。
解决方案
您必须指定您的时区,似乎在生产中您使用的时区与本地时区不同。除了在您的代码中,您没有指定任何区域,因为它采用了默认区域。
要解决此问题,您必须指定区域:
ZoneId zoneId = ZoneId.of("America/Dawson_Creek"); // specify the zone you want to use
ZonedDateTime date = ZonedDateTime.now(zoneId);
推荐阅读
- r - 在 for 循环中为蜂群图中的分位数分配颜色
- ios - 带有集合视图的 Swift 慢速自定义键盘按钮
- loops - DAX while 循环或使用 6 个月前的滚动数据创建表的命令
- javascript - JavaScript 是否有一个对象文字速记,它会自动为属性分配一个值,该值是属性名称的字符串?
- excel - 如何用已知值之间的线性级数填充空白列
- gem5 - gem5中如何指定预取策略和替换策略?
- boolean - 如何在 smali 中设置布尔值为真
- php - Laravel PackageManifest.php 第 131 行:未定义索引:名称
- r - 我们谈论 R 中的引用类型和原始类型吗?
- python - Discord.py:发送消息时如何在 args 中保留 \n