问题标签 [java.util.date]

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 投票
3 回答
117 浏览

java - Date() 对象不一致。月日年都错了

现在是 3/15/11,当我调用一个新的日期对象时:

我得到回报

  • 月份为 2 ( getMonth()),
  • 日期为 2 ( getDay())
  • 年份 ( getYear()) 为 111。

这个约定有什么理由吗?

0 投票
2 回答
2458 浏览

java - 月份字段的值 0 无效。同时将 util.date 转换为 XMLgregoriandate?

我正在将 java.util.Date 转换为 XMLGregorianDate。

当我在控制台上打印 My util date 时,它​​显示:

日期:2011-01-25 20:33:46.54

但转换后,当我尝试使用它时,出现以下异常:org.springframework.ws.soap.client.SoapFaultClientException:月份字段的值无效 0。

同样有趣的是,当我显示 util Date.getYear() 和 getMonth() 方法(不推荐使用的方法仅用于在控制台上显示日期)时,控制台上的输出是:

年:111 月:0

为什么会这样?谁能说出这背后的原因?先感谢您。

0 投票
18 回答
1279685 浏览

java - 将 java.util.Date 转换为字符串

我想将一个java.util.Date对象转换为StringJava 中的一个。

格式是2010-05-30 22:15:52

0 投票
1 回答
3191 浏览

java - 将 java.util.Date 转换为 org.joda.time.LocalDateTime 时出现问题

有了这个日期或以下日期,一切正常:

  • new LocalDateTime(new Date(0,0,1,2,30))— 1900-01-01T02:30:00.000
  • new LocalDateTime(new Date(111,4,24,19,51))— 2011-05-24T19:51:00.000

但是之前的日期有一些无法理解的东西:

  • new LocalDateTime(new Date(0,0,1,2,29,50))— 1900-01-01T01:59:50.000
  • new LocalDateTime(new Date(0,0,1))— 1899-12-31T23:30:00.000
  • new LocalDateTime(new Date(-50,0,1))— 1849-12-31T23:30:20.000
  • new LocalDateTime(new Date(-116,6,4))— 1784-07-03T23:30:20.000

谁知道,这是什么,以及如何防止这个问题?

0 投票
5 回答
732 浏览

java - 在 API 中使用 java.util.Date 的好理由

是否有任何特定原因在 API 中使用 Date 类(例如,在员工出生日期字段中)而不是 long 或 Long。

对此有一些讨论: java-date-vs-calendar,但我想特别知道是否有任何理由使用日期,当长(或长)看起来更简单时。

当然,我会使用 TimeZone 和 SimpleDateFormatter 在 GUI 中解析和显示日期,也许还会使用 Calendar 来执行操作,但我只关心这个问题中数据模型/API 中日期的存储和表示。

更新:我不选择 Date 的一个原因是它是可变的。因此,如果我在我的 API 中公开一个日期,调用者可以调用 setTime(long),这似乎违反了基本封装。对我来说,这似乎超过了使用 Date 提供的额外清晰度的好处,因为我可以调用长属性 timeInMillisecondsSinceEpoch 并将相同的信息传达给调用者。

0 投票
4 回答
54916 浏览

java - 我们在 Java 中有一个 TimeSpan 类的类吗

我只是想知道是否需要 TimeSpanjava.util以便我可以定义这两次之间有多少小时、分钟和秒。

由此TimeSpan我们可以得到两次之间的时间间隔。像

或者

有了这个TimeSpan,我们可以在SimpleDateFormat.

我不确定这是否已经在 J​​ava 中实现但我还没有发现。

0 投票
3 回答
1155 浏览

java - java.util.Date 的行为

以上打印:

为什么是这样?这是日期中的错误吗?这很难相信。

0 投票
2 回答
4107 浏览

java - 为什么我不应该使用 date4j 而不是 joda java.util.Calendar 或 jsr 310?

我最近遇到了date4j,这是一个非常简单的库(本质上是一个类),用于在 Java 中处理日期。从概念上讲,我真的很喜欢 date4j 的“想法”。事实上,在阅读了整个主站点和 javadoc 中的文档之后,我非常同意所陈述的一切。

现在,我不应该使用 date4j可能有几个原因 - 错误、性能、缺乏用户等。我不是在问这些事情。从概念上讲,我在问 date4j 的想法有什么问题(对于那里的大多数应用程序)?当然,可能有一些应用程序需要 joda 或threeten 之类的东西——但我相信这些只是少数。

人们向处理日期/时间的用户(几乎每个编写 Java 应用程序的人)提供的正常建议大致如下:

  • 使用 joda-time 而不是 java.util.Calendar
  • 将您的网络服务器设置为 UTC
  • 将数据库服务器设置为 UTC
  • 以 UTC 存储您的日期时间

事实上,最后三个要点说明了人们在处理日期时当前的心理模型存在的问题。人们试图在应用程序和数据库级别管理时区(更不用说 ORM 框架添加了另一层抽象,这使事情进一步复杂化)。

你不应该做那些事情。例如,如果您使用的是 java.util.Calendar,并且您正在一些用户定义的时区中操作时间:

无论时区如何,这都代表时间上的“瞬间”。您应该能够在这一次与数据库之间进行持久化,而不必担心发生任何类型的“转换”。数据库是否在上海时区和网络服务器在洛杉矶时区无关紧要 - 时间的瞬间是相同的。

一个问题是一些数据库试图为你管理时区(我在看着你,Postgres!grr!),更糟糕的是,JDBC 驱动程序级别的行为是特定于供应商的——即 PreparedStatement.setDate/getDate。

date4j 使用的心智模型似乎摆脱了所有的困惑。例如,显式强制使用在调用 now() 时提供时区。网站上有一些非常好的使用图书馆的建议(这些事情我之前已经在我自己的应用程序中做),例如:

  • 不要使用试图管理时区的数据库类型
  • 将时区存储为单独的列(如果需要)

为什么没有更多人采用像 date4j 这样的库?

0 投票
1 回答
785 浏览

java - 关于 java.util.Calendar 的问题

我正在尝试使用以下代码来理解行为。我的本地时区是 UTC -7(亚利桑那州)。

它生成以下输出:

1 UTC -4 小时:12
1 UTC -4 日:27
1 UTC -7 时间戳:2011 年 9 月 27 日星期二 12:40:37 MST
2 UTC -4 小时:0
2 UTC -4 日:28
2 UTC -7 时间戳:Wed Sep 28 00:40:37 MST 2011
3 UTC -4 Hour:3
3 UTC -4 Day:28
3 UTC -7 时间戳:Wed Sep 28 00:40:37 MST 2011
4 UTC -4 Hour:12
4 UTC -4 Day:28
4 UTC -7 时间戳:Wed Sep 28 09:40:37 MST 2011

我不明白为什么第一个 cal.set(Calendar.HOUR,12) 会导致日期翻转到第二天。对一个值使用 add() 会导致调整其他值是有道理的,但 set() 也这样做没有意义。

有没有办法在保留所有其他值的情况下进行绝对 set()?

0 投票
4 回答
16706 浏览

java - java类中的静态最终日期字段

我们有一个公共静态 util 方法,它可以解析字符串并返回 Date 对象,但如果解析的字符串无法转换为 Date 对象,它也会抛出 ParseException。

现在,在另一个类中,我希望使用上述 util 方法将静态最终 Date 初始化为一个值。但鉴于 util 方法抛出 ParseException,这是不允许的。

这是我想做的,是不允许的

保持此日期字段“最终”的推荐方法是什么?