gpt4 book ai didi

java - 乔达时区模式在环境中发生变化

转载 作者:行者123 更新时间:2023-11-30 09:47:06 26 4
gpt4 key购买 nike

我对为什么某些时区的日期时间格式输出在我的环境中发生变化感到困惑。

我有一场 war ,我将这场 war 作为 Jetty 上的独立 war 运行(使用 Java 1.5),这段代码

System.out.println(new DateTime().withZone(DateTimeZone.forID("Asia/Kolkata")).toString("zzz"));

产生输出:IST

当我把这场 war 放在耳边,并在 WebSphere 6.1 上运行时,

输出:'+5:30'

我希望在这两个地方都显示“IST”。我怀疑它与类加载以及 Joda 如何找到时区定义有关。如果我能指出一些文档,我将不胜感激。

我正在使用 Joda 1.6.2

最佳答案

有关这方面的一些文档可以在 http://joda-time.sourceforge.net/tz_update.html 找到- 您应该确保应用程序服务器中的现有 jar 不会覆盖这些时区文件。

在 2011 年,您可以下载 ftp://elsie.nci.nih.gov/pub/tzdata2011h.tar.gz ,并在解压后的目录中搜索术语“Kolkata”和“IST”。 2017 年,您将通过 IANA(https://iana.org/time-zonesftp://ftp.iana.org/tz — 例如 ftp://ftp.iana.org/tz/releases/tzdata2017a.tar.gz)找到数据。

然后在您的应用程序服务器中查找现有的 jar,看看您在其中找到相同文件名的位置。我个人喜欢使用我自己的小“grepJars.sh”bash 脚本,它在当前目录(不是子目录!)的所有 jars/wars/ears 中按文件名查找文件:

#!/bin/bash

searchterm=$1

handleFile()
{
f=$1
found=`jar tf "$f"|grep "$searchterm"`
if [ "$found" ]; then
echo "-----------------"
echo "$f"
echo "-----------------"
echo "$found"
fi
}

ls *.?ar|while read f; do handleFile $f; done

话又说回来,那里可能有更好的搜索脚本/工具...

关于java - 乔达时区模式在环境中发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6851273/

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