java代码中的时区问题
我正在尝试使用TimeZone.getDefault()获取本地时区,服务器正在CST时区中运行,但每当我执行以下代码时,我都会得到输出“Wed Nov 5,2014 03:52:22 PM GMT”,但我需要CST中的时区。我的代码有问题吗java代码中的时区问题,java,date,datetime,Java,Date,Datetime,我正在尝试使用TimeZone.getDefault()获取本地时区,服务器正在CST时区中运行,但每当我执行以下代码时,我都会得到输出“Wed Nov 5,2014 03:52:22 PM GMT”,但我需要CST中的时区。我的代码有问题吗 SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy hh:mm:ss zzz"); Date dtTimeStamp = dateFormat.parse((String
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy hh:mm:ss zzz");
Date dtTimeStamp = dateFormat.parse((String) map.get("TimeStamps"));
SimpleDateFormat dateFormat2 = new SimpleDateFormat("E MMM d, yyyy hh:mm:ss a zzz");
TimeZone tzDefault = TimeZone.getDefault();
dateFormat2.setTimeZone(tzDefault);
dateFormat2.format(dtTimeStamp);
据
通常,您可以使用getDefault获得时区,它根据程序运行的时区创建时区
因此,必须明确提供所需的时区
TimeZone tzDefault = TimeZone.getTimeZone("GMT");
如果
TimeZone.getDefault()
未返回CST,则您的服务器不在CST timzone中,或者未进行相应的配置
时区.getDefault()
由以下因素确定:
- 使用user.timezone属性值作为默认时区ID(如果可用)
- 检测平台时区ID。平台时区的来源和ID映射可能因实现而异
- 如果给定或检测到的时区ID未知,则使用GMT作为最后手段
TimeZone timeZone = TimeZone.getTimeZone("CST");
将来,请让它更具可读性。代码不会产生任何输出,因此不清楚您在这里询问的是什么。目前该程序正在时区为CST的服务器上运行,但我的代码返回GMT。这就是问题所在。哼,您的serveur os和JRE版本是什么?os:Win server 2008 JRE:1.5.005