我是java的新手,因此很长一段时间以来都无法解决这个问题。

我使用的是Windows XP,机器设置为TimeZone:Eastern Time(美国和加拿大)。

我有一个Java应用程序,它获取当前系统时间和时区信息,并将如下字符串:20101012 15:56:00 EST写入文件。

上面的最后一个日期,即:时区,随着我改变系统日期,从EST变为EDT。

准确:从11月(例如:2009年11月)到3月(2010年3月),它是EST,否则是EDT。

EST是我想要的而不是EDT。

是否有任何特定的类/功能,我总是可以将其作为EST读取?

等待回复。

谢谢你的回复。

好吧,我忘了提几件事。

我希望我的机器在Windows时区设置中设置为:Eastern Time(US& Canada)。

简单来说,我想做的是:获取我的机器时间,并将其写入文本文件

我知道从3月到11月发生的夏令时。

但问题是,当我将机器时间写入文件时,如果不存在夏令时(DST),则写为2010 01 12 15:56:00美国东部时间,如果是夏令时,则为20101012 15:56:00当下。

我担心的是,无论是否是夏令时,我都想写EST。

如果文件中的时间是20101012 15:56:00 EDT,您要将其读作20101012 15:56:00 EST还是20101012 14:56:00 EST? 我敢说你正在计算时间偏移,你会因时间的变化而受到灼伤。

如果这是出于记录原因,请考虑将时间记录为UTC。

我不认为你应该做你的建议。

您说无论您的系统时区当前是什么(东部时间不是您的时区,但UTC + 5或+4是),您希望它显示EST。这显然是错误的。假设它是在夏天,你的电脑认为它是在本地的2010/6/15 15:00。您打印当前时间,您得到:

The time I print this out at: 2010 06 15 15:00:00 EDT

无论出于何种原因,您认为EDT令人不快,因此您将其更改为EST:

I print this out at: 2010 06 15 15:00:00 EST

但是,如果你在接下来的一小时内将该片段发送给其他人,他们将被迫认为你是从未来走过的!美国东部时间15:00:00是美国东部时间16:00:00。

哈哈......很好的例子。你说得对。但是,我正在处理一个我需要告诉的服务器:"在20101015 15:30:30执行任务xxx"xxx是时区。无论月份是什么,服务器都只能理解EST而不是EDT。因此,EDT令人不快。

我会创建一个自定义区域:

TimeZone alwaysEst = TimeZone.getTimeZone("EST+5");

这将报告为EST,并将始终比UTC早5个小时。特别是,不要选择现有时区,否则当区域更新更改定义时最终会被烧毁。

请注意,通过强制EST,您记录的日期将仅匹配系统在一年中的5个月显示的时间。其他7个月你将休息一小时。它可以简化解析文件,但会使用户感到困惑。

解决方案取决于你为什么要写这个时间以及你在阅读它时想要用它做什么(它将用于做什么,而不是"你想要什么")。总是把它写成EST是对事实的误解。当EDT生效时,它实际上不是EST。如果你想跟踪一些"绝对"的时间点,我建议你使用GMT而不是任何时区。

斯蒂芬,你是对的。回答你的问题,这就是书面时间的使用方式 - 我正在处理一个我需要告诉的服务器:"在20101015 15:30:30执行任务"(这是我写的时间字符串)提交)。 xxx是时区。服务器只知道EST而不是EDT,无论哪个月。将EDT写为EST是对事实的误解,我同意。但我有点被迫这样做。

你的问题仍然不明确。

如果您只是想强制'EST'字符,即使您的机器设置为自动切换DST,或者您想要获得EST上的实际时间,我也没有理解。

所以你有两个选择:

您的机器时间设置为下午2:15并且DST开启,并且您希望在美国东部时间下午2:15(这不是正确的实际时间)写入您应该使用SimpleDateFormat。这样,你就会撒谎。但是,无论如何,你知道什么最适合你。

你的机器时间设置为下午2:15,DST开启,你要写东部时间下午1:15,你应该使用:TimeZone.setDefault(TimeZone.getTimeZone("EST"))

感谢您带来的清晰度。我希望实现选项1,这是不正确的意义。能否详细说明一下,我如何使用SimpleDateFormat将其写为美国东部时间下午2点15分!谢谢

尝试System.out.println(new SimpleDateFormat("yyyyMMdd hh:mm:ss a'EST'")。format(yourDate));并看到结果。查看SimpleDateFormat javadoc,了解您拥有的无数模式字母。

值得注意的是,在东部时区的夏季,几乎每个主要中心都使用夏令时,因此您可以正确地显示该时区的人们关心的时间。

如果你想要它是一个特定的时区,而不是默认的/系统时区,那么你可以通过以下方式强制TimeZone到EST:

TimeZone est = TimeZone.getTimeZone("EST");

虽然正如迈克尔上面提到的那样,文档建议使用本地全名,例如"America / New York"而不是一般的时区缩写。

如果你想声称它确实是EST,即使你知道它是EDT,那么我想你可以做到以下几点:使用一个不包含时区信息的自定义模式的SimpleDateFormat实例,然后" EST"在你写出的String的末尾。

the machine is set to TimeZone:

Eastern Time (US & Canada).

这不是一个真正的时区(EDT和EST都不是)。时区(如Java所理解的)类似于"America / Phoenix",它是管理时区的ID,它具有基本偏移和(可选)切换到特定日期的夏令时。这两者都可以改变,在解释历史日期时有必要考虑这些变化。

因此,如果您不想使用DST开关,请选择不遵守DST的时区。可能没有这样的时区,并试图采取行动,因为会引入不可能的日期。

java 时区 edt_JAVA TimeZone发行EDT对EST相关推荐

  1. java calendar 设置时区_详解Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat

    一.概述 1.问题描述 使用Java处理时间时,我们可能会经常发现时间不对,比如相差8个小时等等,其真实原因便是TimeZone.只有正确合理的运用TimeZone,才能保证系统时间无论何时都是准确的 ...

  2. Java时区处理之夏令时,冬令时 - 美国的6个时区

    在开始之前,如果要了解Java中的时区操作的基本概念和事例,可以参见另一篇博客:Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat 一.夏令时概述: Da ...

  3. 关于java时区转换夏令时问题及解决办法

    关于中国的夏令时问题:参考另外一篇: https://blog.csdn.net/u011165335/article/details/78924498 这里:主要讲的是: 在夏令时结束的时候,jav ...

  4. 如何添加时区 java_如何在Windows(非Java)应用程序中使用Java时区ID?

    我需要将时区信息添加到具有用户维护位置的db表中.数据将主要从 Java代码访问,但也有一些PL / SQL和Win32(Delphi)代码需要了解时区信息. 似乎可以直接使用java.util.Ti ...

  5. java时区_Java时区

    java时区 Java TimeZone class represents a time zone offset, and also figures out daylight savings. Tim ...

  6. java时区问题_Java时区问题

    Java时区相关 时间格式 UTC是以原子时计时,更加精准,适应现代社会的精确计时.不过一般使用不需要精确到秒时,视为等同.GMT是前世界标准时,UTC是现世界标准时.每年格林尼治天文台会发调时信息, ...

  7. java 时区 列表_浅解 JAVA与时区

    时区转换 主要介绍一下 Java 时区转换相关的一些概念,和转换示例. 由于夏令时的存在,应该通过Java 或者 DB 提供的方法来转换. JAVA 时间的时区转换 Java Date 支持 UTC ...

  8. Error:java: 无效的源发行版: 11

    Error:java: 无效的源发行版: 11 1.问题描述 2.原因查找 3.解决办法 3.1 打开IDEA的File-Project Structure设置 3.2 修改Project SDK为自 ...

  9. Error:java: 错误: 不支持发行版本 14

    Error:java: 错误: 不支持发行版本 14 修改全局设置 修改module设置 在我换了电脑把IDEA的project转移过来之后,开始出现了问题 修改全局设置 修改 Files -> ...

最新文章

  1. button按钮大小
  2. 在2020年到来之前,你应该知道的10大科技趋势预测
  3. C语言函数集(十五)
  4. 郊游 ID:PICNIC
  5. PHP 函数调用跟踪
  6. MySQL中rename一个view对应的SQL语句
  7. 区域显示触发_Nature Communications:地幔数据显示可氧化的火山气体的减少可能触发了大氧化事件...
  8. 看懂 ,学会 .NET 事件的正确姿势-简单版
  9. macappstore登不上去_丈夫在外与多人暧昧,妻子气愤不已,可他却怒怼:这还不都是你逼的...
  10. 处理Excel电子表格
  11. Android中ListView数据处理优化
  12. Vue3学习之第四节:setup()中使用watch、watchEffect 函数
  13. paip.提升用户体验--radio图片选择器 easyui 实现..
  14. Unity粒子系统-粒子光环
  15. 当逛书店成为一种怀旧
  16. 忘记背后 努力面前 向着标杆直跑!(转)
  17. Java20:NullPointerException
  18. sin n次方 x 的降幂公式
  19. 外卖优惠券返利分销系统外卖返利系统公众号小程序源码saas系统
  20. Verilog在编写第一行代码之前

热门文章

  1. c++语言编的小游戏,用C++语言编写小游戏系统(可读取文件)
  2. 微信防红不死码跳转微信防封源码
  3. Python安装torch模块报错处理
  4. 我的梦想是当一个计算机英语,我的梦想英语作文(精选11篇)
  5. 静态代码分析工具-CasePlayer2
  6. 计算机基础——5.2 图像与图形
  7. 项目经理是如何做到每月“0”电话费的
  8. 892A Greed
  9. 重读GPDB 和 TiDB 论文引发的 HTAP 数据库再思考
  10. php owncloud_技术|搭建私有云:OwnCloud