问题标签 [java-calendar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
56 浏览

java - 如何使用 Java 日历设置不同日期的不同时间?

我正在尝试创建一个简单的议程类,以便为商店设置营业时间和关闭时间。我想根据一天设置不同的时间,所以我使用了 2 个这样的公历:

这是我的议程课程:

所以我希望在周日(1:01)和其他日子的 8:00 / 19:30 打印相同的开放和关闭时间,但我得到的却是所有日子的时间完全相同(“你的商店是08:00 开放,19:30 关闭。”)。我真的不明白为什么。有人可以帮我解决这个问题吗?

谢谢

0 投票
3 回答
184 浏览

java - 日历行为与 LocalDate 不兼容?

嗨伙计们,我在尝试将行为从日历迁移到本地日期时遇到了麻烦。

让我们假设payDate当前日期为 2020-01-29

由于业务原因payDay可以0取值payDate为过去一个月。

我不确定这是技术原因,如果有人可以向我解释这一点,我将非常感激,我尝试检查 java 文档,但没有帮助。

所以我需要用 LocalDate java 库复制这种行为。从我的角度来看; 与LocalDate 中的值类似的set方法是:CalendarDAY_OF_MONTH

但是当出现以下场景并且payDay等于0我得到一个错误时:

我也有一些想法,关于如何在规则生效时在 localDate 中获得相同的日历结果(如果 payDay 为 0,则返回上个月的最后一天),但过于冗长。

如果您知道 LocalDate 上的类似行为,请帮助我。谢谢。

0 投票
1 回答
175 浏览

java - java Calendar.toInstant() 和 Instant.atZone 中的不准确/随机性(也是 Local/ZonedDateTime.ofInstant())

我正在开发一部分代码,我必须使用日历 API 使用现有的 API,而我使用的是全新的 API。在转换中出现了一些奇怪的行为,请参见以下示例:

我得到的输出如下:

因此,公历的第一行对于这两种情况都是正确的:

  • 在 case1 中,我们在 +01:00 区域获得 1 月 1 日凌晨 1:00
  • 在 case2 中,我们在 +01:00 区域获得 1 月 1 日上午 0:00

在从Calendarto转换之后,Instant我们已经看到了日期的问题,因为我们现在突然:

  • 12 月 30 日(48 小时前)在案例 1 中
  • 在案例 2 中的 12 月 29 日(72 小时前)... 还发现在转换过程中引入了几百毫秒的小随机误差,你在这里看不到

现在,当我们转换 next from 时InstantZonedDateTime我们现在

  • 9 分 21 秒后,因为时区 Europe/Paris 传递到instant.atZone()导致 +00:09:21 的奇怪时区

我对它进行了更多测试,并且通常在 1583 年之前的日期之间进行转换Calendar并且Instant变得非常不可靠,而由于 1911 年之前的日期的时区问题,Instantto变得不可靠。Local/ZonedDateTime

现在我知道几乎没有人为 1911 年之前的日期存储/转换时间(但我仍然可以想象这样的用例),但是,嘿!让我们看看克里斯托弗·哥伦布何时出发去发现美洲!:

结果,我还发现,在 1911 年之前的早期,从两个 api 获取 epoch millis 会为相同的 ISO 日期产生不同的结果(问题似乎出在Calendar实现中):

什么是正确的转换方法,所以它会“正常工作”(tm)?

注意:到目前为止,我认为最安全的方法是先转换为 ISO 日期字符串。有没有更好的解决方案?

0 投票
1 回答
135 浏览

java - currentTimeMillis 与日历

我一直在构建一个应用程序并保存我一直System.currentTimeMillis()用来以毫秒为单位的时间戳的重要时间信息。我所有的算法都使用这个 ms 数据,并且日期与这个 ms 数据一起保存。缓存的持续时间也被确定,对象日期是从这个毫秒时间戳格式化的。

我不确定这是否是一个好习惯。是不是更好用Calendar.getinstace()

我已经收集到 currentTimeMillis() 可能是一种不好的做法,因为它可能导致时间数据不一致,但我不明白为什么会这样。

0 投票
2 回答
154 浏览

java - Java 日历未显示正确的 HOUR_OF_DAY

我在 java 中使用 Calendar 类并且遇到了麻烦。我有这个代码

我希望它能够输出

但相反它输出

那么为什么 HOUR_OF_DAY 和 HOUR 返回相同的东西,但是 calendar.getTime() 显示了正确的 HOUR_OF_DAY。他们都使用NZST。

0 投票
1 回答
93 浏览

java - 如何在java中将日期和sql时间组合成一个日期时间?

使用 java Calendar 如何组合开始日期、日期和开始时间?

例如:

如果开始日期是 2020 年 9 月 8 日。当天是 2,开始时间是上午 8:00,那么我们如何获得一个 java 日期,即 2020 年 9 月 9 日上午 8:00。这是我不成功的尝试。

谢谢您的帮助。

0 投票
2 回答
417 浏览

java - 如何在 JAVA 中将任何 TimeZone dateTime 转换为 UTC Date

我必须使用用户收到的日期时间,并将该时间从给定时间转换为 UTC。现在,所有解决方案都在工作,但不是我需要的。首先,它转换为时区,但我不想最初转换。我必须在我的日期设置那个时区,然后将该时间转换为 UTC。现在,每个解决方案都表明我必须传递日期和时间,然后我会使用我提供的时区获取更新的日期和时间,然后转换为 UTC。这不是我的问题。

我的用户将向我发送任何时区的日期时间,并且我的服务器将在 UTC 时区运行。我将从前端获取区域 ID。我想将该日期时间转换为 UTC 并使用我的其他条件进行验证。我可能会在一个请求中获得 UTC-7 时间,然后在下一个请求中获得 UTC+5:30。因此,所有时间都应转换为 UTC,并且我无法在日期上设置时区。

我想将特定时区设置为日期,并且我正在获取该时区的日期和时间,但我无法设置确切的时区。在这里,我正在添加我的代码,请告诉我我错在哪里:

我的输出是

在这里您可以看到我的 DateTime 已转换,但时区仍然是 UTC,我想更新它。

0 投票
3 回答
236 浏览

java - Calendar 的 getActualMinimum 和 getGreatestMinimum 方法有什么区别?

既然getActualMinimum()并且getGreatestMinimum()将为每个字段返回相同的值,那么确切的区别是什么?

0 投票
1 回答
38 浏览

datetime - 更改会话语言会导致“java.text.ParseException: Unparseable date

每当我在更改为英语语言后以德语会话语言定义时间范围时。会话(反之亦然)我得到: java.text.ParseException: Unparseable date: "10.10.2018"

这是片段:

0 投票
4 回答
755 浏览

java - 如何从数据库中检索日期并转换为日历?

我正在使用 Java Swing 和 MySQL 在 Eclipse 中编写代码。我在数据库中使用日历存储出生日期。

如果用户想要更新,我想从数据库中检索日期并在 GUI 中显示以进行更新。

我怎样才能做到这一点?

在那,我正在尝试更新记录,为此,我通过弹出窗口从用户那里获取 id,然后它正在从数据库中加载数据,但是对于 dob,它给出了解析错误。所以我想知道如何将日期转换为日历?我已经删除了日期代码,之后它给出了当前日期和其他数据加载正常。