Tag: jodatime

基于区域设置的Joda-Time DateTime格式

我从另一个系统收到一个字符串日期,我知道该日期的区域设置(也可从其他系统获得)。 我想将此String转换为Joda-Time DateTime对象,而不显式指定目标模式。 因此,例如,我想将此字符串“09/29/2014”仅使用区域设置转换为日期对象,而不是将日期格式硬编码为“mm / dd / yyyy”。 我不能对格式进行硬编码,因为这会根据我收到的日期的当地情况而有所不同。

Joda DateTime到Unix DateTime

这很奇怪,但我没有找到任何关于将Joda(Time) DateTime转换为Unix DateTime(或时间戳,无论哪个名称正确)的结果。 我怎样才能做到这一点?

两个Java日期之间的天数差异?

我想获得两个Java Date对象之间的区别。 我使用过Joda-Time库。 但问题是,我得到的天差异大于实际天差。 这是我的代码片段: DateFormat formatter = new SimpleDateFormat(“mm/dd/yyyy”); Date someDate=new Date(); Date today = Calendar.getInstance().getTime(); try { someDate = formatter.parse(“06/22/2010”); } catch(ParseException pe) { System.out.println(“Parser Exception”); } int days = Days.daysBetween(new DateTime(someDate), new DateTime(today)).getDays(); System.out.println(” Days Between ” + someDate + ” : ” + today + ” – ” + days); 这是我的输出: […]

使用Joda-Time Library将字符串转换为Google Tasks API中的DateTime格式

我有一个日期/时间字符串需要发送到Google Tasks API,但我无法弄清楚如何将Joda-Time库DateTime对象转换为Java DateTime对象。 我使用Android作为平台。 该字符串以“2012/07/19 22:00:00”开头,并首先转换为Iso格式。 这是我的代码: Task task = new Task(); task.setTitle(title); task.setNotes(note); DateTimeFormatter formatter = DateTimeFormat.forPattern(“yyyy/MM/dd HH:mm:ss”); DateTime dt = formatter.parseDateTime(dateToIso(“2012/07/19 22:00:00”)); task.setDue(dt); private String dateToIso(String date) { date = date.replace(“/”, “-“); date = replaceCharAt(date, 10, ‘T’); date = date + “.000Z”; return date; } 我得到的错误是: “类型不匹配:无法从org.joda.time.DateTime转换为com.google.api.client.util.DateTime” 请协助。 有关ISO转换的信息也很有用。

在java中生成随机日期时间(joda时间)

是否可以使用Jodatime生成随机日期时间,使得日期时间的格式为yyyy-MM-dd HH:MM:SS,它应该能够生成两个随机日期时间,其中Date2减去Date1将大于2分钟但小于60分钟。 请提出一些方法。

我应该使用threeten而不是joda-time

我遇到了https://blog.joda.org/2009/11/why-jsr-310-isn-joda-time_4941.html 。 1)我目前正在将Java Calendar迁移到joda-time。 我想知道,我应该使用threeten而不是joda-time吗? 三生产准备好了吗? 2)三个库和joda-time库可以在同一个应用程序中一起存在吗? 因为我正在使用一些使用joda-time库的第三方库。 3)joda-time会不会成为一个放弃项目,因为有三个?

用Joda和时区解析约会

我有两个时间戳,以两种不同的格式描述相同的时刻。 2010-10-03 18:58:07和2010-10-03T16:58:07.000+02:00 我用Joda用两个不同的日期格式化器解析时间戳。 最后,我希望有两个DateTime对象,它们在同一时刻是相等的。 DateFormatter提供了几种控制时区和语言环境的方法,但我无法使其工作。 这是我想要的代码: final String date1 = “2010-10-03 18:58:07”; // Europe/Berlin local time final DateTimeFormatter formatter1 = DateTimeFormat.forPattern(“yyyy-MM-dd HH:mm:ss”); final DateTime dateTime1 = formatter1.parseDateTime(date1); final String date2 = “2010-10-03T16:58:07.000+02:00”; // Europe/Berlin local time with time zone final DateTimeFormatter formatter2 = DateTimeFormat.forPattern(“yyyy-MM-dd’T’HH:mm:ss.SSSZ”); final DateTime dateTime2 = formatter2.parseDateTime(date2); Assert.assertTrue(dateTime1.isEqual(dateTime2)); 如果有人可以帮助我,请提前感谢!

从org.joda.time.DateTime转换为java.util.Calendar的方法

任何人都这样做,可以分享? 我看到一两个选项,但想知道别人做了什么。

Jodatime将时间划分日期时间转换为millis

有人可以向我解释为什么当我试图获得一个与我自己的区域不同的DateTime的毫秒时,它会让我回到我本地机器时区的毫秒数? 我希望得到UTC的毫秒数,但我的应用程序的本地设置被设置为EST(即使我实际上在爱尔兰;)) 这是代码: DateTimeFormatter format = DateTimeFormat.mediumDateTime(); DateTime local = new DateTime(); DateTime utc = new DateTime(System.currentTimeMillis(), DateTimeZone.UTC); System.out.println(“utc zone = ” +utc.getZone()); System.out.println(“UTC time: ” + utc); long current = utc.getMillis(); System.out.println(“current: ” + format.print(current)); System.out.println(“local: ” + format.print(local.getMillis())); 这是它打印的内容: utc zone = UTC UTC time: 2013-08-16T13:36:32.444Z current: Aug 16, 2013 9:36:32 AM local: […]

理解JodaTime DateTime.parse(string,formatter)

DateTime类的parse方法中格式化程序的样式是否必须与字符串的确切样式匹配? 例如,我从数据库(Oracle)获取TimeStamp对象并将其转换为字符串。 在数据库中,TimeStamp就像这样存储 08-AUG-12 12.00.00.000000000 AM 我将格式化程序设置为此样式 String pattern = “dd-MMM-yy”; 我得到了这个例外 java.lang.IllegalArgumentException: Invalid format: “08-AUG-12 12.00.00 AM” is malformed at ” 12.00.00 AM” org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:866) org.joda.time.DateTime.parse(DateTime.java:144) 这究竟是什么意思,我将如何解决它? 当我将格式化程序设置为”yy-MMM-dd hh.mm.ss aa”我没有得到exception,但它在浏览器中打印如下: 2008-08-12T00:00:00.000-04:00 ,但是我需要把它打印成”dd-MMM-yy hh:mm:ss aa”