gpt4 book ai didi

java 程序在 linux 上报告错误的时区(显示 Europe/Dublin 的 IST)

转载 作者:太空狗 更新时间:2023-10-29 11:44:34 25 4
gpt4 key购买 nike

我从以下代码中得到错误的时区值 (IST)。来自 bugreport

import java.util.*;
import java.text.*;
class simpleTest
{
public static void main(String args[])
{
System.out.println("Simple test Josh ");

Date now = new Date();
DateFormat df = DateFormat.getDateInstance();
Calendar cal = Calendar.getInstance();
System.out.println("\n TIME ZONE :"+ cal.getTimeZone().getDisplayName());
long nowLong = now.getTime();
String s = now.toString();
System.out.println("Value of milliseconds since Epoch is " + nowLong);
System.out.println("Value of s in readable format is " + s);

}
}

在都柏林,区域是错误的。它显示 IST

$ java -Duser.timezone=Europe/Dublin simpleTest
Simple test Josh

TIME ZONE :Greenwich Mean Time
Value of milliseconds since Epoch is 1408095007238
Value of s in readable format is Fri Aug 15 10:30:07 IST 2014

这个不错

$ java -Duser.timezone=Europe/Helsinki  simpleTest
Simple test Josh

TIME ZONE :Eastern European Time
Value of milliseconds since Epoch is 1408095025866
Value of s in readable format is Fri Aug 15 12:30:25 EEST 2014

IST 的值(value)从何而来?

我检查了/etc/localtime 之类的 os 文件

bash-3.2# cd /etc
bash-3.2# ls -lrt localtime
lrwxrwxrwx 1 root root 33 Nov 16 2010 localtime -> /usr/share/zoneinfo/Europe/Dublin

/etc/sysconfig/时钟

bash-3.2# cd /etc/sysconfig/
bash-3.2# cat clock
# The ZONE parameter is only evaluated by system-config-date.
# The timezone of the system is defined by the contents of /etc/localtime.
ZONE="Europe/Dublin"
UTC=true
ARC=false
bash-3.2# pwd

最佳答案

Irish Standard Time ,这是都柏林的正确时区,缩写为 IST。

不幸的是,时区缩写不是唯一的,正如您在 this table 中看到的那样- IST 可以解析为(至少)另外两个时区。时区缩写 are not part of the related ISO standard通常不推荐使用它们。

一般来说,UTC timestamps当涉及多个时区时,应该首选。使用 UTC,每一方只需要跟踪最多一个与他们自己的时区不同的时区。此外,UTC 不受 DST 的影响。做法,即使对于具有相同 longitude 的位置,这通常也是混淆的根源.

关于java 程序在 linux 上报告错误的时区(显示 Europe/Dublin 的 IST),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25324308/

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