Tag: jodatime

在jodaTime获得主要月份名称

我需要根据不同Locales的号码获取月份名称。 为此,我创建一个DateTime (或YearMonth ,无所谓)Object并获取其monthOfYear属性: YearMonth md = new YearMonth(1992, month); System.out.println(md.monthOfYear().getAsText(new Locale(“ru”))); 事情是适用于英语的,因为Nominative和Genitive名称是相同的,但对于其他语言,它只返回Genitive,这不是我需要的。 如何获得Nominative月名?

Joda在GMT时区解析ISO8601日期

我有一个ISO 8601日期,让我们说: 2012-01-19T19:00-05:00 我的机器时区是GMT+1 我正在尝试使用joda来解析它并将其转换为相应的GMT日期和时间: DateTimeFormatter simpleDateISOFormat = DateTimeFormat.forPattern(“yyyy-MM-dd’T’HH:mmZZ”); creationDate = simpleDateISOFormat.withZone(DateTimeZone.UTC) .parseDateTime(date + “T” + time) .toDate(); 现在我期待的结果是Fri Jan 20 00:00:00 CET 2012 相反,我得到: Fri Jan 20 01:00:00 CET 2012 我相信这是因为我在时区GMT + 1 。 有没有办法解析日期伪装在不同的时区? 编辑:基本上问题是当我调用toDate()方法时。 该方法将DateTime转换为我需要做的Date ,但我在本地时间转换它。 有人知道一种不会施加此限制的转换方法吗?

第一次使用时,Jodatime的LocalDateTime很慢

我目前正在java项目中测试一些webapp技术,并且想知道为什么这些页面有时会加载很快,有时需要花费大约5秒来加载。 我终于发现它就是这条线 LocalDateTime now = new LocalDateTime(); 当它第一次被调用时,需要永远获得当前时间。 在那之后调用时,即使是完全不同的地方,它也会非常快。 我正在使用 joda-time joda-time 1.6.2 有没有人有类似的经历? 真的卡在这里..我可以在我的应用程序的早些时候使用LocalDateTime来紧固后续调用 – 但这似乎相当沉闷。 编辑 我现在误用了Spring: @Service public class JodaTimeLoader { public JodaTimeLoader() { LocalDateTime loadMe = new LocalDateTime(); } }

如何将DateTime转换为Date

如何将Date转换为DateTime ,反之亦然? 例如 Date dt = new Date(); 现在我想把它转换为DateTime 。 也 DateTime dtim = new DateTime(); 现在我想将它转换为Date。

具有固定毫位数的java.time ISO日期格式(在Java 8及更高版本中)

默认情况下, Instant的toString方法使用DateTimeFormatter.ISO_INSTANT格式化程序。 如果格式化程序碰巧为0,则不会打印秒数的数字。 java时间示例: 2015-10-08T17:13:07.589Z 2015-10-08T17:13:07Z Joda-Time示例(以及我对java.time的期望): 2015-10-08T17:13:07.589Z 2015-10-08T17:13:07.000Z 在一些系统中解析这真的很令人沮丧。 Elasticsearch是我遇到的第一个问题,没有预定义的格式支持可选的millis,但我可以用自定义格式解决这个问题。 默认似乎是错误的。 看来你无法为Instants构建自己的格式字符串。 是实现我自己的java.time.format.DateTimeFormatterBuilder.InstantPrinterParser的唯一选项吗?

推土机映射JodaTime属性不按预期工作

我正在使用Dozer在Document类和DocumentManagementBean类之间进行映射,这两个都是我自己制作的。 两者都有一个名为dateAdded的Joda DateTime类型的getter和setter属性。 当Document对象d具有属性dateAdded = x时,调用mapper.map(d, DocumentManagementBean.class)所有字段都能正确自动映射(因为我可以完全控制代码库,所以我可以通过没有dozer-config而依赖它简单地在匹配属性名称上),除了dateAdded字段,其中新的DocumentManagementBean dateAdded以其dateAdded属性中的当前 DateTime结束,而不是来自d对象的x。 我期待Dozer试着打电话 dmb.setDateAdded(d.getDateAdded()); 并且只是将dateAdded的值从source添加到target,但它似乎是为dmb对象创建新的DateTime然后让它一个接一个。 有人可以为我解释一下吗?

JodaTime DateTime,ISO8601 GMT日期格式

如何获得以下格式: 2015-01-31T00:00:00Z (ISO8601 GMT日期格式) 在joda时间(java)中的DateTime对象? 例如。 DateTime time = DateTime.now(); String str = // Get something like 2012-02-07T00:00:00Z 谢谢! 🙂

使用Joda Time将Unix时间戳转换为String

尝试将Unix timstamp从数据库转换为日期格式的String时。 int _startTS = evtResult.getInt(“start”); //outputs 1345867200 Long _sLong = new Long(_startTS); //outputs 1345867200 //I’ve also tried: Long _sLong = new Long(_startTS*1000); //outputs 1542436352 DateTime _startDate = new DateTime(_sLong); //outputs 1970-01-16T08:51:07.200-05:00 时间戳是: Sat, 25 Aug 2012 。 我不知道为什么1970年总是输出,所以希望有人可以看到我正在犯的一个愚蠢的错误。

Quartz API和Joda Time API之间有什么关系?

是否可以在JodaTime中创建日期,然后使用JodaTime对象使Quartz安排作业? 我们可以给Quartz API提供一个Period jodaPeriod来运行一天中某个特定时期的任务吗? 这两个API是否以任何方式相关和/或兼容?

比较两个Joda-Time DateTime对象

我正在处理与此处提出的问题非常类似的事情 – 比较Joda-Time时区,但它似乎对我不起作用。 这是我正在测试Joda-Time DateTime的一段代码 – DateTime estDT = new DateTime(DateTimeZone.forID(“America/Puerto_Rico”)).withMillisOfSecond(0); DateTime londonDT = new DateTime(DateTimeZone.forID(“Europe/London”)).withMillisOfSecond(0); System.out.println(“Comparison ” + londonDT.isBefore(estDT)); System.out.println(“Comparison ” + londonDT.isAfter(estDT)); 有趣的是,我从上面的两个sysout语句中得到’false’。 任何人都可以解释一下这种比较的正确方法是什么?