问题标签 [apache-commons-dateutils]

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 投票
2 回答
16750 浏览

java - DateUtils.parseDate 异常

我似乎无法让它工作,它说未知模式字符 - “T”

无法解析日期 2011-07-22T12:01:34.9455820

这也不起作用(这是我首先要做的,在这种情况下它只是给出了一个解析异常):

我的错误在哪里?

0 投票
2 回答
103 浏览

java - 使用 SimeplDateFormat 严格解析日期

我正在尝试解析日期,但我只得到一个 ParseException。我正在使用 Apache DateUtils。

我尝试解析的日期代码是:

我所做的其中一件事是更改我的语言环境,因为我的默认语言环境是 es_ES,但它无论如何都不起作用。

为什么它不起作用?

0 投票
2 回答
8843 浏览

java - Apache DateUtils 截断 WEEK

我正在使用Apache commons-lang3 DateUtils.truncate(Calendar calendar, int field)方法来“切断”日历对象的不必要字段。现在,当field参数获取 的值时Calendar.WEEK_OF_MONTH,它会抛出一个

java.lang.IllegalArgumentException: The field 4 is not supported

truncate()方法的文档说:

所以我认为这应该可行,但显然不行。有没有办法使用 DateUtils 将日期截断为一周的第一天?


更新

我在源代码中查找并发现该modify()方法(tuncate()在内部使用 this)遍历了一堆预定义的字段以找到给定的参数。现在这些字段是:

正如人们所看到的,与CalendarWEEK 的字段没有任何关系,所以我想我必须手动执行此操作......欢迎任何其他想法/建议!

0 投票
4 回答
2370 浏览

java - DateUtils#truncate() 在 UTC 时区工作

我有一个 java.util.Date,我正在使用 org.apache.commons.lang.time#truncate(javaUtilDateObj, Calendar.DATE) 将日期转换为午夜。

问题是 UTC 日期以本地时区表示,而 truncate 方法只是将小时、分钟和秒转换为 00:00:00 而不考虑时区。

示例:- 说 UTC 时间是从纪元开始的 30 秒。Wed Dec 31 19:00:30 EST 1969 是我看到的 Date 对象表示。在上述日期调用 DateUtils#truncate() 方法时,输出为 Wed Dec 31 00:00:00 EST 1969。

我所期待的是,如果 UTC 时间距离纪元 30 秒。如果这可以表示/转换为 1970 年 1 月 1 日星期四 00:00:30 EST 1970,我可以调用 DateUtils#truncate() 方法并期望 1970 年 1 月 1 日星期四 00:00:00 EST 1970。

注意:我无法使用 joda-time API,因此我被我所拥有的东西困住了。

0 投票
2 回答
3759 浏览

java - Apache DateUtils 截断月份中的某一天

我想创建一个 DateHelper 类,为此我正在使用来自 Apache Commons Lang 2.6 的 DateUtils。从日期中提取字段时,我无法理解返回的结果。这是我的测试类,它在截断日期后提取月份中的某天:

我希望提取字段 Calendar.DAY_OF_MONTH 的结果为 2,但我得到了 1。

0 投票
0 回答
85 浏览

java - 如何四舍五入以UTC为单位的日期?

我正在尝试将日期对象四舍五入到最近的日期。

例如:让日期 = 3 月 12 日 4:00 UTC(偏移量 = 4:00)。

在使用提供的时区(TZ)信息将日期转换为本地时间后,我想将日期四舍五入到最接近的日期。

所以现在,如果我将此日期与 TZ 转换为 America/Los_Angeles,则日期变为:3 月 11 日晚上 9 点。现在,我想将其四舍五入到最近的日期。所以它应该变成 3 月 12 日 00:00:00。

我该怎么做呢?

日期对象不存储 TZ 信息。它只存储纪元后的毫秒数。所以我不能使用 Apache DateUtils 进行转换,因为我只想在将日期对象转换为本地时间之后进行转换。

我可以从日期对象中获取本地时间的唯一方法是使用 DateFormatter 并传递 TZ 信息。这将根据传递给日期格式化程序的格式向我返回一个字符串。如何将此字符串四舍五入到最近的日期?我知道如何手动解析它然后去做。但是,我正在寻找一种更清洁、更简单、更容易的方法。

有没有这样的方法?

谢谢!

0 投票
3 回答
3724 浏览

java - 将 java.util.Date 舍入到一天结束

我想将一个java.util.Date对象四舍五入到一天结束,例如四舍五入2016-04-21T10:28:18.109Z2016-04-22T00:00:00.000Z.

我看到了Java Date rounding,但在一天结束时找不到可比较的东西。和如何创建今天午夜和明天午夜的Java Date 对象也不一样?,因为我不想创建一个新的Date(今天或明天的午夜),而是基于任何给定日期的下一个午夜。

0 投票
4 回答
47182 浏览

java - 在Java中将日期字符串转换为纪元

有没有办法在java中将给定的Date字符串转换为MillisecondsEpoch长格式)?示例:我想转换

以毫秒(纪元)为单位。

0 投票
1 回答
381 浏览

java - Apache DateUtils 解析随机日期

Date date = DateUtils.parseDate("1243334-03332-284555", "yyyy-MM dd");

即使指定了日期格式,Apache DateUtils 也能够解析上述随机日期。有谁知道背后的原因是什么??

对于我的用例,上述日期是无效日期。如何使日期工具在解析此无效日期时出错?

0 投票
1 回答
3446 浏览

android - DateUtils.getRelativeTimeSpanString 返回格式化的日期字符串而不是“小时/分钟前”

我在试图让 DateUtils.getRelativeTimeSpanString 返回它在 Android 中应该做的事情时遇到了严重的问题。

我在这里遇到了所有类似的问题,并且发布的解决方案都没有工作或相关。

这是我的代码:

currentNewsItem.getTimeInMilliseconds 方法确实返回了一个 long(例如,刚才它通过了1521759734,这似乎是正确的)并且 getRelativeTimeSpanString 将格式正确的日期字符串以“2018 年 3 月 23 日”的格式传递给视图,因此它知道正确的日期。但我需要它通过“x 小时前”或“x 分钟前”,而我终其一生都无法弄清楚为什么它不是。

我检查了模拟器上的时间,问题出现在我的设备上,所以不是时区设置。

文档说,如果时间跨度大于 7 天,它将恢复为这样的日期字符串,但我检查了作为旧时间传递的时间,转换器网站显示它是 4 小时前的确切时间。此外,它显示的是正确的日期(今天),而不是几小时/几分钟前。

我已经为第三个参数尝试了 HOUR_IN_MILLIS、MINUTES_IN_MILLIS 和 SECONDS_IN_MILLIS 常量,并且我尝试删除了最后一个缩写参数,但结果仍然相同。

我已经尝试了各种公共方法签名来尝试找到一个可能有效但它们都具有相同结果的方法。

有没有人经历过这种情况,或者任何人都可以指出我哪里出错了?非常感谢。