考虑夏令时,将本地时间转换为 UTC 时间,反之亦然

2024-03-11

我知道如何将本地时间转换为 UTC 时间,反之亦然。 但我在执行此操作时对夏令时(DST)处理感到非常困惑。

那么任何人都可以回答以下问题:
1.时区之间转换时,java内部是否处理DST?
2. 时区转换时需要做什么?
3. 有什么好的文章可以更清楚地解释这一点吗?

提前致谢。


您确定知道如何将日期与 UTC 相互转换吗?正确吗?
我害怕,我对此表示怀疑。

  1. Yes.
  2. 你不需要转换,你只需要assign正确的时区。
  3. 你需要一篇文章做什么?好的,我正在研究这个问题,但现在让我在这里给出一个答案。

首先第一件事。您的程序应在内部以 UTC 时区存储日期(或日历)。嗯,事实上是 GMT,因为 Java 中没有闰秒,但那是另一回事了。
唯一需要“转换”的地方是当您要向用户显示时间时。这也涉及到发送电子邮件。在这两种情况下你都需要format日期以获取其文本表示形式。对此你会使用DateFormat并分配正确的时区:

    // that's for desktop application
    // for web application one needs to detect Locale
    Locale locale = Locale.getDefault();
    // again, this one works for desktop application
    // for web application it is more complicated
    TimeZone currentTimeZone = TimeZone.getDefault();
    // in fact I could skip this line and get just DateTime instance,
    // but I wanted to show how to do that correctly for
    // any time zone and locale
    DateFormat formatter = DateFormat.getDateTimeInstance(
            DateFormat.DEFAULT,
            DateFormat.DEFAULT,
            locale);
    formatter.setTimeZone(currentTimeZone);

    // Dates "conversion"
    Date currentDate = new Date();
    long sixMonths = 180L * 24 * 3600 * 1000;
    Date inSixMonths = new Date(currentDate.getTime() + sixMonths);

    System.out.println(formatter.format(currentDate));
    System.out.println(formatter.format(inSixMonths));
    // for me it prints
    // 2011-05-14 16:11:29
    // 2011-11-10 15:11:29

    // now for "UTC"
    formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
    System.out.println(formatter.format(currentDate));
    System.out.println(formatter.format(inSixMonths));
    // 2011-05-14 14:13:50
    // 2011-11-10 14:13:50

正如您所看到的,Java 关心处理 DST。您当然可以手动处理,只需阅读时区相关JavaDoc http://download.oracle.com/javase/6/docs/api/java/util/TimeZone.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

考虑夏令时,将本地时间转换为 UTC 时间,反之亦然 的相关文章

  • TestNG 启动期间发生内部错误

    我创建了一个 TestNG 类 FirstTest java 当我将测试用例作为 TestNG Test 运行时 出现以下错误 期间发生内部错误 启动 FirstTest java lang NullPointerException Ecl
  • 如何向 OkHttp 请求拦截器添加标头?

    我将这个拦截器添加到我的 OkHttp 客户端 public class RequestTokenInterceptor implements Interceptor Override public Response intercept C
  • Java:BufferedInputStream 的 available() 方法存在问题

    我正在处理以下代码 用于将大文件拆分为一组较小的文件 FileInputStream input new FileInputStream this fileToSplit BufferedInputStream iBuff new Buff
  • Java - 了解 PrintWriter 和刷新的需要

    好吧 首先我对所有代码表示歉意 但我觉得代码太多总比代码不够好 我正在制作一个简单的聊天客户端和印刷机 尤其是我正在努力解决的问题 使用现在的代码 它将与服务器类交互 并且完美地打印我想要打印的内容 但是 当我删除 writer flush
  • SimpleDateFormat 无法正确处理 DD

    我正在尝试获得这样的格式 2013 06 15 17 45 我在代码中执行以下操作 Date d new Date SimpleDateFormat ft new SimpleDateFormat YYYY MM DD HH mm Stri
  • Eclipse 内容协助无法在枚举常量参数列表中工作

    使用 eclipse 当我输入以下内容时 public enum Foo A Integer private final Integer integer private Foo Integer integer this integer in
  • 在Tomcat中设置环境变量TESSDATA_PREFIX

    我们正在使用名为 Tess4J 的 Tesseract OCR Java 库 如果作为独立应用程序运行 它可以正常工作 它需要一个名为 TESSDATA PREFIX 的变量 其中包含 tessdata 配置和其他字符集相关文件 它也可以与
  • 读取 Nashorn JO4 和 NativeArray

    Java调用代码 import jdk nashorn api scripting myCustomHashMap dataStore new myCustomHashMap ScriptEngineManager sem new Scri
  • Android 防火墙与 VpnService

    我正在尝试使用 BS 项目的 VpnService 为 Android 实现一个简单的防火墙 我选择 VpnService 因为它将在非 root 设备上运行 它将记录连接并让您过滤连接 基于IP 有一个应用程序可以做到这一点 因此这是可能
  • Knuth-Morris-Pratt 算法

    解决方案是Knuth Morris Pratt 算法 https en wikipedia org wiki Knuth E2 80 93Morris E2 80 93Pratt algorithm 干草堆 AAAAAAAAA 针 AAA
  • Android Studio 找不到 com.android.support:support-v4:19.1.0

    我已将一个项目导入Android Studio但我收到错误 找不到 com android support support v4 19 1 0 我在哪里可以找到这个文件 我已经使用导入了项目Gradle 我有Android Studio v
  • JavaFX 动画使用循环?

    我正在尝试制作一款类似太空侵略者的游戏 我画了一个正方形 我想通过使用循环逐步向下移动它thread sleep 然而 正方形立即被绘制出来 我知道有可以使用的动画路径 但我想保持低水平并仅使用坐标系 有没有办法使用这样的循环来制作时间轴动
  • Java Swing JEditorPane:操作样式文档

    我的模型是与枚举类型关联的字符串队列 我试图在 JEditorPane 中显示该模型 队列中的每个元素作为一个单独的 HTML 段落 其属性基于关联的枚举类型 但是 我的更新方法并没有达到我想要的效果 我尝试将 HTML 字符串直接写入文档
  • 在 JSF 自定义验证器中区分 ajax 请求和完整请求

    我的验证器需要知道它是完整请求还是 ajax 请求 在我当前的解决方案中 我检查 http 请求标头X Requested With元素 public void validate FacesContext context UICompone
  • 如何在Android中使用资源

    一个人如何使用资产 我有这个代码 AssetManager assets getAssets InputStream stream assets open test txt 看起来它只能在 Activity 类中使 用 如果我尝试在另一个类
  • 不想保留一对一的实体

    假设我有两节课Employee and Department In Employee我已经写了 OneToOne fetch FetchType EAGER cascade CascadeType ALL JoinColumn name d
  • 为什么 Cassandra 客户端在生产中没有 epoll 时会失败? [复制]

    这个问题在这里已经有答案了 当我在本地运行服务时 我收到一条警告 指出 epoll 不可用 因此它使用 NIO 很公平 当我将其部署到 Kubernetes 中时 我得到了以下信息 这导致服务无法运行 2017 03 29T19 09 22
  • Android 以编程方式停止 toast 通知?

    有没有办法以编程方式停止 Toast 消息 假设我有一个按钮 单击它可以滚动 toast 消息 并且在 onclick 事件中我想停止队列中的所有消息并只显示新消息 我该怎么做 我的代码的简化版本如下 代码 public class Hel
  • JSF - 实施受限页面过滤器

    我正在关注 BalusC 的回答JSF 2 0 如何获取在浏览器地址栏中输入的 URL https stackoverflow com questions 4105263 jsf 2 0 how to get the url that is
  • 丰富:数据表行跨度问题

    我需要创建一个 rich dataTable 甚至扩展 具有以下功能 我有一个公司类 其中包含产品对象的集合 我想展示下表 我仍然没有弄清楚如何使用子表执行此操作 在所有示例中 我发现子表具有与主表完全相同的列 据推测 我需要在前两列中使用

随机推荐

  • 如何在2013 SQL Server数据库项目中创建登录用户

    我正在尝试创建一个具有 SSDT 数据库项目登录名的用户 该登录名已存在于目标服务器上 使用以下 SQL CREATE USER MyLogin FOR LOGIN MyLogin WITH DEFAULT SCHEMA dbo GO 我收
  • Angular 应用程序中的语法错误:意外的标记 <

    我有一个 Angular 应用程序 它可以在我的本地和生产环境中完美运行 经过微小的更改后 我在本地运行了该应用程序并且运行良好 然后我构建了该项目并复制了dist文件夹到 Web 服务器 问题是当我尝试访问该应用程序时 我在 Chrome
  • ASP.NET MVC - 单元测试重写初始化方法

    我有一个如下所示的抽象类 它被所有其他控制器继承 是否有可能测试这个方法 顺便说一句 我正在尝试使用最小起订量 但没有运气 如果您能帮助我 我将不胜感激 public abstract class ApplicationController
  • 为什么 Entity Framework 在直接 select 语句中执行速度比 Dapper 快

    我是使用 ORM 处理数据库的新手 目前我正在制作一个新项目 我必须决定是使用 Entity Framework 还是 Dapper 我读过很多文章 都说 Dapper 比实体框架更快 因此 我制作了 2 个简单的原型项目 一个使用 Dap
  • 如何从 Web 模块使用 @WebServiceRef 注入 EJB

    我有一个 JEE6 应用程序 带有一个 ejb 和一个 Web 模块 在 GlassFish 3 1 1 上运行 现在我想通过将 WebService JAX WS 作为会话 Bean 注入到多个托管 Bean 中来访问它 Stateles
  • 当鼠标悬停在 UWP 按钮上时,按钮会改变颜色

    我正在尝试创建一个 UWP 按钮 当鼠标指针悬停在其上时 该按钮将更改背景颜色 我遇到的麻烦是 默认情况下 它似乎已经做到了这一点 但不是我想要的颜色 当我将鼠标悬停在红色按钮上时 它会变成默认的灰色 然后当我将鼠标移开时又会变回灰色 我用
  • 如何在不使用鼠标的情况下执行虚拟鼠标单击C# [重复]

    这个问题在这里已经有答案了 我想在 Windows 应用程序中执行单击 而不使用真正的鼠标 这样我可以将其最小化 很像机器人的行为 我该怎么做 我认为你正在寻找的功能是PostMessage DllImport user32 dll Set
  • GitLab Runner - 如何一次只允许一个管道运行

    我是 GitLab 新手 面临一个问题 如果我在同一个 gitlab runner 上同时触发两个管道 它们都会并行运行并导致失败 我想要的是将运行限制为一次只运行一个管道 而其他管道则在队列中运行 我已经设置了concurrent 1在
  • 无法向 Google App 脚本授予授权或许可

    为什么我无法向我使用同一 Google 帐户创建的 Google Apps 脚本授予许可 授权 看来 Google 不相信自己能够将自己的 Google Apps 脚本与自己的电子表格一起使用 这是破坏一切的代码行 如果此行不存在 则不会请
  • Android 应用程序将数据发送到 PHP 脚本 - 预期失败

    我尝试开发一个需要将数据发送到 MySql 数据库的应用程序 为了实现它 我创建了一个 httppost 如下所示 public void postData try Create a new HttpClient and Post Head
  • 如何将 C# 程序集资源嵌入到同一个程序集中?

    我已将不同文化的资源添加到我的班级图书馆项目中 构建时 会为每种区域性创建单独的文件夹 每个文件夹中都有一个程序集 有没有办法将所有资源嵌入类库程序集中 而不是为每种文化提供额外的程序集 该类库最终会在另一个项目中使用 因此对于这些单独的文
  • ASP.NET 虚拟路径在哪里解析波形符“~”?

    ASP NET 虚拟路径在哪里解析波浪号 在链接中 例如 它是否重定向 或者RedirectToAction在 ASP NET MVC 中 它从这里获取 VirtualPathUtility ToAbsolute contentPath h
  • 应用程序中所有函数调用的列表

    我们如何列出应用程序中调用的所有函数 我尝试使用 GDB 但它的回溯列表仅到主函数调用 我需要更深入的列表 即主函数调用的所有函数以及从这些被调用函数调用的函数的列表 等等 有没有办法在 gdb 中得到这个 或者你能给我一些关于如何获得这个
  • 基于 socketserver 的 Python 3 服务器关闭挂起

    我正在使用 Python 3 中的线程 SocketServer 开发一个 简单 服务器 我在实施时遇到了很多麻烦shutdown为了这 我在互联网上找到的下面的代码最初可以工作 但在通过 telnet 从客户端发送一些命令后停止工作 一些
  • Hibernate、Spring、@Transactional - 用 try/catch 包围?

    我正在使用 Spring 3 和 Hibernate 3 6 开发 Web 应用程序 我有一些问题要问 Transactional注释和代码结构 gt 当我使用 Transactional 使用 Spring 进行事务管理 我是否必须围绕
  • 计算两行之间的时间差

    我有一个包含以下内容的表 DataDate Value 2010 03 01 08 31 32 000 100 2010 03 01 08 31 40 000 110 2010 03 01 08 31 42 000 95 2010 03 0
  • Android 上的 Http 连接超时不起作用[重复]

    这个问题在这里已经有答案了 我正在编写一个连接到网络服务的应用程序 如果无法获得连接 我不希望它等待太久 因此我设置了httpparams的connectionTimeout 但似乎并没有任何效果 为了进行测试 我暂时关闭了 WLAN 应用
  • 尝试在 Android 手机上使用 RenderScript 支持库模糊图像时出错

    我正在尝试模糊我的图像 并使用 RenderScript 将其模糊显示在relativelayout的背景上 该应用程序可以在模拟器中运行 但我在手机中的应用程序不断崩溃并出现以下错误 08 05 22 21 36 543 E Render
  • 随机访问容器不适合内存?

    我有一个对象数组 例如图像 它太大而无法放入内存 例如 40GB 但我的代码需要能够在运行时随机访问这些对象 做这个的最好方式是什么 当然 从我的代码的角度来看 如果某些数据位于磁盘上或临时存储在内存中 那应该没有关系 它应该具有透明的访问
  • 考虑夏令时,将本地时间转换为 UTC 时间,反之亦然

    我知道如何将本地时间转换为 UTC 时间 反之亦然 但我在执行此操作时对夏令时 DST 处理感到非常困惑 那么任何人都可以回答以下问题 1 时区之间转换时 java内部是否处理DST 2 时区转换时需要做什么 3 有什么好的文章可以更清楚地