我在尤达-时间中使用这种格式
MM/dd/yyyy HH:mm:ss zzzz在运行我的应用程序时,它打印12/16/2015 09:52:37中央标准时间,但在我的测试中它打印12/16/2015 09:52:37 -07:00。
我发现了这种模式,zzzz说:
长特定的非位置格式(例如:“太平洋标准时间”(.If)本地化数据不可用,使用本地化格林尼治标准时间格式(例如格林尼治时间-08:00)。
本地化是指地区吗?我想让我的测试输出一致的日期与什么主线代码输出。
发布于 2015-12-22 15:17:17
这很可能是操作系统级别上服务器环境的差异。如果没有显式指定时间戳,JodaTime和JDK将使用“默认时区”。默认时区是操作系统提供的时区。检查生产和测试机器上的区域设置和时区设置(例如。这些是locale命令和检查某些发行版上的/etc/时区命令,date命令也可以显示时区值的不同)。
或者,您可以使用从JDK的JodaTime的TimeZone.getDefault()初始化的DateTimeZone.getDefault()查询TimeZone.getDefault()使用的默认时区。这反过来在JVM启动属性user.timezone中初始化(当未显式设置时,它将查询OS的时区)。如果要强制JVM在操作系统报告的时区以外的特定时区运行,可以在启动时提供该属性:
java -Duser.timezone=UTChttps://stackoverflow.com/questions/34317048
复制相似问题