从Joda Time转换为java.Time

目录

转换类型

其他情况


Joda Time是一个非常成功的日期和时间库,在过去12年左右的时间里,它被广泛使用并对许多应用程序产生了重要影响。但是,如果要将应用程序迁移到Java SE 8,那么就需要把Joda考虑迁移到Java.Time(以前称为JSR-310)了。

java.time库包含了从Joda time中学到的许多经验,包括更严格的空值处理和对多个日历系统的更好方法。

转换类型

不包括时区的类:

Joda-Timejava.timeNotes
LocalDateLocalDate没有时间或时区的日期
YearMonthDay
LocalTimeLocalTime没有日期或市区的时间
TimeOfDay
LocalDateTimeLocalDateTime没有时区的日期+时间
MonthDayMonthDay没有时区的月+日
YearMonthYearMonth没有时区的年月
-Year新 : 年份类
-Month新 : 月份枚举
-DayOfWeek新 : 星期几枚举
Partial-java.time中不存在

包含时区或表示毫秒的类:

Joda-Timejava.timeNotes
DateTimeZonedDateTime有时区的日期+时间
OffsetDateTime新 : 格林威治/UTC的偏移日期+时间
MutableDateTime-

java.time中不包含,改用不可变的ZonedDateTime

DateMidnight-

在Joda Time中不推荐使用LocalDate或ZonedDateTime

-OffsetTime新 : 格林威治/UTC的偏移时间
InstantInstant

日期时间连续体中的一个瞬间,指定为从1970-01-01T00:00Z开始的毫秒数。

DateTimeZoneZoneId

时区标识符,如欧洲/巴黎 Europe/Paris

ZoneOffset新 : 与格林威治/UTC的偏移时间,例如+02:00

时间变量:

Joda-Timejava.timeNotes
DurationDuration

基于分秒的时间量

PeriodPeriod and/or Duration

时间量 Joda time Period包括年到毫秒,java.time仅年/月/日(另请参见(ThreeTen-Extra PeriodDuration)

MutablePeriod-

不包含在java.time中,请改用不可变的Period或Duration

Years-

不包含在java.time中,请改用Period(或ThreeTen-Extra

Months
Weeks
Days
Hours-

不包含在java.time中,请改用Duration(或ThreeTen-Extra

Minutes
Seconds
Interval-java.time中不存在 (请参见 ThreeTen-Extra)
MutableInterval-java.time中不存在

格式化:

Joda-Timejava.timeNotes
DateTimeFormatterDateTimeFormatter

不可变格式

DateTimeFormatterBuilderDateTimeFormatterBuilder

格式化构造器

DateTimeFormatDateTimeFormatter

基于DateTimeFormatter的静态方法

ISODateTimeFormat
PeriodFormatter-java.time中不存在 (请参阅 ThreeTen-Extra )
PeriodFormatterBuilder
PeriodFormat
ISOPeriodFormat

其他类和接口:

Joda-Timejava.timeNotes
-Clock新 : 一种绕过标准时间的方式
ChronologyChronology

二者API和实现差别很大

ISOChronologyIsoChronology二者API和实现差别很大
DateTimeFieldTypeChronoField二者API和实现差别很大
DateTimeField
DurationFieldTypeChronoUnit二者API和实现差别很大
DurationField
PeriodType-java.time中不存在
Readable*Temporal*

Readable*接口与Temporal*接口最接近,

强烈建议使用值类型,而不是临时接口

其他情况

在大多数情况下,上表足以确定要转换的类,所需的方法都是显而易见的。

以下是一些特殊情况:

  1. 舍入:Joda Time对舍入有相当大的支持,java.Time的支持较少,仅基于截断。请参见truncatedTo()方法。
  2. 月末:Joda Time在属性对象上使用withMaximumValue()方法将字段更改为月份的最后一天。java.time有一个更通用的机制,请参阅TemporalAdjusters.lastDayOfMonth()。
  3. Null:Joda Time接受null作为输入,并使用合理的默认值处理它。java.time拒绝输入null。
  4. Joda Time有一个构造函数,它接受Object并执行类型转换。java.time只有工厂方法,所以转换是一个用户问题,尽管为字符串提供了parse()方法。
  5. 时间间隔:Joda Time提供了金额类的方法,例如Days.between(a,b)。java.time在ChronoUnit类上提供了一个类似的方法——ChronoUnuit.DAYS.between(a,b)。
  6. 其他字段:Joda Time在DateTimeFieldType中提供了一组固定的字段。java.time允许通过实现TemporalUnit来扩展字段集,请参见IsoFields、JulianFields和WeekFields。

总结

本文概述了JavaSE8中JodaTime和java.Time之间的关键映射。对于Java.time不支持的部分可以使用ThreeTen-Extra 。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: org.joda.time.datetime是一个Java类,用于处理日期和时间。它是Joda-Time库中的一个类,提供了许多有用的方法和功能,如日期和时间的解析、格式化、计算、比较等。它可以帮助开发人员更方便地处理日期和时间,避免了一些常见的错误和问题。 ### 回答2: org.joda.time.DateTime是一个Java日期和时间库中的一个类。它提供了对日期、时间、时间区域和持续时间的处理和操作。 DateTime类是不可变的,它包含了日期和时间的信息。它可以用于表示一个特定的时间点,例如某个事件发生的时间,或者表示一个时间范围,例如某个任务的开始时间和结束时间。 在使用DateTime类时,可以通过构造函数传递日期和时间的具体数值来创建一个DateTime对象。DateTime类提供了各种方法来获取和设置日期和时间的各个部分,例如获取年、月、日、小时、分钟、秒等。 DateTime类还提供了一系列的计算和比较方法,用于处理日期和时间之间的计算和比较。可以使用这些方法来计算两个日期之间的差距,比较两个日期的先后顺序,或者判断某个日期是否在一个时间范围内。 此外,DateTime类还支持时区的处理。它可以使用不同的时区来表示日期和时间,并支持将日期和时间转换到不同的时区中。 总之,org.joda.time.DateTime是一个强大的日期和时间处理工具,它提供了丰富的功能和灵活的操作,可以满足各种日期和时间处理的需求。它是开发人员在Java应用程序中进行日期和时间处理的一个好选择。 ### 回答3: org.joda.time.DateTimeJoda-Time库中一个重要的类,用于表示日期和时间。它提供了许多有用的方法来处理和操作日期和时间。 首先,DateTime类可以通过构造函数创建一个具体的日期和时间对象。可以使用传入年、月、日、时、分、秒等参数的方式创建。例如,可以通过以下方式创建一个DateTime对象: DateTime dateTime = new DateTime(2022, 3, 15, 10, 30, 0); 此外,DateTime类还提供了许多方法来获取日期和时间的不同部分。例如,可以使用getYear()、getMonthOfYear()、getDayOfMonth()等方法来获取年、月、日的值。还可以使用getHourOfDay()、getMinuteOfHour()、getSecondOfMinute()等方法来获取时、分、秒的值。 DateTime类还支持日期和时间的比较。可以使用isBefore()、isAfter()、isEqual()等方法来比较两个DateTime对象的先后顺序或是否相等。 另外,DateTime类还具有许多方便的方法来进行日期和时间的操作。例如,可以使用plusDays()、minusHours()等方法来增加或减少日期和时间的值。还可以使用withDayOfWeek()、withMonthOfYear()等方法来设置特定的日期部分的值。 最后,DateTime类还提供了格式化日期和时间的功能。可以使用toString()方法将DateTime对象转换为字符串表示形式。还可以使用format()方法将DateTime对象按照指定的格式转换为字符串。 总之,org.joda.time.DateTime类是Joda-Time库中用于处理日期和时间的重要类,提供了许多方便的方法来表示、操作和比较日期和时间。它是Java中处理日期和时间的一个强大的替代品。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jet-W

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值