java.time 相当于 Joda-Time `withTimeAtStartOfDay`? (获取当天的第一时刻)

2024-01-02

In the 乔达时间 http://www.joda.org/joda-time/图书馆,DateTime http://www.joda.org/joda-time/apidocs/org/joda/time/DateTime.html类提供了一个方法withTimeAtStartOfDay http://www.joda.org/joda-time/apidocs/org/joda/time/DateTime.html#withTimeAtStartOfDay--获得一天的第一刻。您可能会认为那一刻是“午夜”。第一个时刻通常是时间00:00:00.000但不总是。

是否java.time包 http://docs.oracle.com/javase/8/docs/api/java/time/package-summary.htmlJava 8 及更高版本中是否有同等功能?


相当于使用一种特殊的方法,一天开始时 http://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#atStartOfDay-java.time.ZoneId-, 在课堂里LocalDate http://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html:

ZoneId zoneId = ZoneId.of("America/New_York");
ZonedDateTime zdt = LocalDate.now(zoneId).atStartOfDay(zoneId);

另请注意,相当于乔达时间 http://www.joda.org/joda-time/ DateTime http://www.joda.org/joda-time/apidocs/org/joda/time/DateTime.html is not LocalDateTime http://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html, but ZonedDateTime http://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html. The zoneId http://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html参数在这里很重要。迁移的具体示例 - 另请参阅时区网站 http://www.timezoneconverter.com/cgi-bin/zoneinfo?tz=America/Sao_Paulo有关详细信息夏令时 (DST) https://en.wikipedia.org/wiki/Daylight_saving_time巴西的转型:

Joda-Time(旧方式)

DateTime dt = 
  new DateTime(2015, 10, 18, 12, 0, DateTimeZone.forID("America/Sao_Paulo"));
dt = dt.withTimeAtStartOfDay();
System.out.println(dt); // 2015-10-18T01:00:00.000-02:00

请注意,此代码甚至会在第一行调用午夜抛出异常构造函数 http://www.joda.org/joda-time/apidocs/org/joda/time/DateTime.html#DateTime-int-int-int-int-int-org.joda.time.DateTimeZone-.

java.time(新方式)

ZoneId zoneId = ZoneId.of("America/Sao_Paulo");
ZonedDateTime zdt =
  ZonedDateTime.of(2015, 10, 18, 12, 0, 0, 0, zoneId);
zdt = zdt.toLocalDate().atStartOfDay(zoneId);
System.out.println(zdt); // 2015-10-18T01:00-02:00[America/Sao_Paulo]

第二个程序语句的行为与 Joda-Time 不同,因为它不会引发异常,而是默默地将本地时间移动所讨论的间隙大小,此处为一小时。这意味着,如果您选择午夜,结果将是相同的(即 1:00)。如果您选择 00:30,那么结果将为 01:30。上面给出的示例选择中午作为输入。

引用该文档ZonedDateTime.of(...) http://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html#of-int-int-int-int-int-int-int-java.time.ZoneId-:

在大多数情况下,本地日期时间只有一个有效的偏移量。在重叠的情况下,当时钟被调回时,有两个有效的偏移。该方法使用通常对应于“夏天”的较早偏移量。

在有间隙的情况下,当时钟向前跳跃时,没有有效的偏移。相反,本地日期时间会根据间隙的长度调整为较晚的时间。对于典型的一小时夏令时更改,本地日期时间将移至一小时后,通常对应于“夏季”的偏移量中。

不可能 100% 迁移所有细节(例如异常行为和应用的 DST 转换策略),因为两个库差异太大。但这是你的指导方针:

  • replace DateTime by ZonedDateTime
  • 考虑切换到LocalDate用于中间计算(参见示例)
  • 使用对时区的显式引用并替换DateTimeZone by ZoneId
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.time 相当于 Joda-Time `withTimeAtStartOfDay`? (获取当天的第一时刻) 的相关文章

  • Guice 忽略注入构造函数参数上的 @Nullable

    我正在使用 Guice v 3 0 并且有一个值被注入到构造函数中 该值可以为 null 因此我在构造函数中使用 Nullable 来自 javax annotations 注释了该参数 public MyClass Parameter1
  • 带有 Android 支持库 v7 的 Maven Android 插件

    我使用 maven android plugin 构建我的 android 应用程序 它依赖于 android 支持库 v4 和 v7 由于我没有找到如何从developer android com下载整个sdk 因此我无法使用maven
  • 如何在 Openfire 中使用 smack

    你好 我计划开发一个可以连接到 gtalk facebook 等的聊天客户端 我决定将 smack API 与 openfire 一起使用 但我需要很少的指导来了解如何将它与 openfire 服务器一起使用 openfire 是否提供了基
  • 如何强制jar使用(或jar运行的jvm)utf-8而不是系统的默认编码

    我的Windows默认编码是GBK 而我的Eclipse完全是utf 8编码 因此 在我的 Eclipse 中运行良好的应用程序崩溃了 因为导出为 jar 文件时这些单词变得不可读 我必须在 bat 文件中写入以下行才能运行该应用程序 st
  • Reactive Spring 不支持 HttpServletRequest 作为 REST 端点中的参数?

    我创建了一个 RestController 如下所示 RestController public class GreetingController RequestMapping value greetings method RequestM
  • 删除优先级队列的尾部元素

    如何删除优先级队列的尾部元素 我正在尝试使用优先级队列实现波束搜索 一旦优先级队列已满 我想删除最后一个元素 优先级最低的元素 Thanks 没有简单的方法 将元素从原始元素复制到新元素 最后一个除外 PriorityQueue remov
  • 在 Struts 2 中传递 URL 参数而不使用查询字符串

    我想使用类似的 URL host ActionName 123 abc 而不是像这样传递查询字符串 host ActionName parm1 123 parm2 abc 我怎样才能在 Struts 2 中做到这一点 我按照下面的方法做了
  • 为自定义驱动程序创建 GraphicsDevice

    我正在开发一个在嵌入式系统中使用 Java 的项目 我有用于屏幕和触摸输入的驱动程序 以及用于文本输入的虚拟键盘 我的屏幕驱动程序有一个Graphics2D您可以绘制的对象和repaint Rectangle 更新方法 类似地 触摸驱动器能
  • Java中的断点和逐步调试?

    抱歉我的问题名称很奇怪 我不知道如何寻找这个 因为我不知道这些东西是如何称呼的 Visual Studio 中至少有一个功能 您可以单击代码左侧并设置一个大红点的起点 然后运行程序 您可以通过按 f8 或 f5 实际上是不同的 f 来跟踪步
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • Java:从集合中获取第一项

    如果我有一个集合 例如Collection
  • 如何使用正则表达式验证 1-99 范围?

    我需要验证一些用户输入 以确保输入的数字在 1 99 范围内 含 这些必须是整数 Integer 值 允许前面加 0 但可选 有效值 1 01 10 99 09 无效值 0 007 100 10 5 010 到目前为止 我已经制定了以下正则
  • Eclipse - 安装新的 JRE (Java SE 8 1.8.0)

    我正在尝试安装 Java 8 到目前为止我所做的 安装最新版本的 Eclipse 下载并安装 Java SE 运行时环境 8http www oracle com technetwork java javase downloads jre8
  • 通过 appassembler-maven-plugin 生成的脚本无法在 Spring Boot 应用程序中找到主类

    我使用 appassembler maven plugin 生成的启动脚本有问题 我有一个基本的 spring boot 应用程序 只有一个类 SpringBootApplication public class ScriptDemoApp
  • Java、Spring:使用 Mockito 测试 DAO 的 DataAccessException

    我正在尝试增加测试覆盖率 所以我想知道 您将如何测试 DAO 中抛出的 DataAccessExceptions 例如在一个简单的 findAll 方法中 该方法仅返回数据源中的所有数据 就我而言 我使用 Spring JdbcTempla
  • 避免 Java 中的重复导入:继承导入?

    有没有办法 继承 导入 Example 常见枚举 public enum Constant ONE TWO THREE 使用此枚举的基类 public class Base protected void register Constant
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • 替换文件中的字符串

    我正在寻找一种方法来替换文件中的字符串而不将整个文件读入内存 通常我会使用 Reader 和 Writer 即如下所示 public static void replace String oldstring String newstring
  • ECDH使用Android KeyStore生成私钥

    我正在尝试使用 Android KeyStore Provider 生成的私有文件在 Android 中实现 ECDH public byte ecdh PublicKey otherPubKey throws Exception try
  • 即使调整大小,如何获得屏幕的精确中间位置

    好的 这个问题有两部分 当我做一个JFrame 并在其上画一些东西 即使我将宽度设置为 400 并使其在一个项目击中它时 当然 允许项目宽度 它会反弹回来 但由于某种原因 它总是偏离屏幕约 10 个像素 有没有办法解决这个问题 或者我只需要

随机推荐

  • 在 Heroku Server django 上安装 poppler

    我正在尝试安装poppler在我的 Heroku 服务器上 因为我正在使用pdf2image作为一个Python包 然而 我不能就这么跑brew install poppler就像我在 Mac 上所做的那样 我尝试从互联网上添加一些 Her
  • 使用 ng-model 命名数组

    我有一个添加按钮 它使用指令添加到表的 estimates tbody function EstimateCtrl scope compile scope services value c name Standard Courier val
  • locationManager:rangingBeaconsDidFailForRegion:withError: kCLErrorDomain 16

    我读过了CLLocationManager kCLErrorDomain 代码 https stackoverflow com questions 20164952 cllocationmanager kclerrordomain code
  • Ruby 中识别方法的 # 约定的基本原理/历史是什么?

    例如 我总是看到称为String split 但从来没有String split 这似乎更符合逻辑 或者甚至可能String split 因为你可以考虑 split位于命名空间中String 当类被假定 隐含时 我什至单独看到了该方法 sp
  • 获取iframe的文档对象

    我正在尝试获取 iframe 的文档对象 但我在 google 上搜索到的示例似乎都没有帮助 我的代码如下所示
  • 追加到 /etc/apt/sources.list

    我正在创建一些脚本来简化应用程序安装 我需要附加到 etc apt sources list 的末尾 下面的代码附加到 中的文件 但不附加到 etc apt 中 echo deb http ppa launchpad net person
  • 如何获取 JavaScript 对象的大小?

    我想知道 JavaScript 对象占用的大小 取以下函数 function Marks this maxMarks 100 function Student this firstName firstName this lastName l
  • ReactJS 中的登录页面与单页应用程序 (SPA) 分离

    我正在 ReactJS 中开发一个单页面应用程序 SPA 我想知道如何在单独的页面中拥有登录页面 我在用create react app作为我的应用程序的基础 我目前正在定义 SPA 的模板App js文件 以及不同 js 文件中的每个组件
  • 验证错误后重定向到操作

    如果我有通常的 编辑 操作 则 GET 操作可以通过对象的 ID 检索对象并将其显示在编辑表单中 接下来 POST 获取 ViewModel 中的值并更新数据库中的对象 public virtual ActionResult Edit in
  • 基于深色模式的 Tailwind 颜色

    有没有办法在顺风配置中定义不同的颜色 以便在不使用深色模式的情况下应用深色模式dark选择器 目前我有一个像这样的对象 const colors light red 100 880808 dark red 100 red I d like只
  • 对数组数字(包括作为字符串的数字)求和的函数

    我有一个函数需要对数组中的所有数字求和 如果这些数字是字符串 1 2 该函数也需要对它们求和 我编写了一个函数并尝试解析数字 但它不起作用 基本上 它需要将所有数字相加 你能在不使用的情况下做到这一点吗reduce 我需要一个简单的解决方案
  • YUI Compressor Maven Mojo 缩小 javascript 的使用

    我在做一个struts2项目 使用maven来编译 我正在尝试缩小位于不同位置的 javascript 文件
  • JMeter 响应时间与线程图 - 数据点

    该图使用什么数据点 该图表示 TTFB 到第一个字节的时间 还是 TTLB 到最后一个字节的时间 以下是设置 该图表示 TTLB 到最后一个字节的时间 因为它使用 JMeter 的响应时间 如果你想要TTFB 第一个字节的时间 你需要使用L
  • 出现“无法对 Null 值调用此方法或属性”错误

    更新1 该行抛出异常 client group details Add new ClientGroupDetails 原问题 我有以下代码 我已将其从数据库中的 30 列数据精简为仅 2 列 每当任何列返回 NULL 值时 我都会收到错误
  • Kendo Grid 可以一直处于编辑模式吗?

    有谁知道剑道网格是否可以始终设置为编辑模式 我们不希望用户单击单元格或按钮来激活编辑模式 我们希望小部件始终显示并可用 有可能吗 除了使用批量编辑模式之外 您还可以尝试设置每列的模板并使用 MVVM 将输入元素绑定到数据项 grid ken
  • Android模拟器运行后如何获取序列号或ID?

    如果我在一台机器上运行多个带有 no window 选项的模拟器 命令 adb devices 显示 List of devices attached emulator 5554 device emulator 5556 device em
  • React,页面刷新后使用 useEffect 丢失 localStorage 中保存的数据[重复]

    这个问题在这里已经有答案了 这可能是一个菜鸟问题 但我遇到了一些麻烦useEffect 钩 我有一个记笔记应用程序 我想让数据持久保存 我用的是2useEffects 一个用于第一次刷新 加载页面时 另一个用于当我向应用程序添加新注释时 我
  • Struts2静态数据存储/访问

    我试图找到 静态 全局 的通常设计 方法是什么 Web 应用程序中的数据访问 存储 我使用的是 struts 2 背景 我有许多要在我的 Web 应用程序中显示的表格 问题1 这些表只会在服务器上每天更改和更新一次 我不想访问数据库 或为每
  • 如何从 Android Studio 构建产品风格?

    我在 build gradle 中定义了一些产品风格 我能够使用成功构建它们gradlew 我不知道如何从 Android Studio IDE 中执行此操作 我的项目最初是在 Eclipse 中完成的 后来我迁移到了 Android St
  • java.time 相当于 Joda-Time `withTimeAtStartOfDay`? (获取当天的第一时刻)

    In the 乔达时间 http www joda org joda time 图书馆 DateTime http www joda org joda time apidocs org joda time DateTime html类提供了