在Java中使用Calendar API之前我需要了解哪些重要事项?

时间:2014-09-16 00:49:36

标签: java jodatime

标题可能听起来有点泛,但这里是问题的具体细节

  • 为什么Date类中的很多APIS都被弃用而不赞成使用Calendar?
  • 为什么使用日历更好?是计算效率还是其他原因?
  • 我目前依赖JodaTime进行大部分日期操作。 Calendar api是否比JodaTime更好或更好?

2 个答案:

答案 0 :(得分:1)

继续使用Joda-Time或使用Java 8 - Date and Time API(基于/启发Joda-Time)。

java.util.Datejava.util.Calendar视为已弃用/已废弃。

阅读Why is the Java date API (java.util.Date, .Calendar) such a mess?Why do we need a new date and time library?

答案 1 :(得分:1)

a){1.1}中大部分java.util.Date部分已弃用java.util.Calendar,因为它只是缺少时区支持。

b)Calendarjava.util.Date有更多的操作,但是对于存储和格式化目的,后者仍然是唯一的选择。请注意,您无法使用Calendar直接格式化SimpleDateFormat - 对象。

c)在大多数地区,Joda-Time更好,例如不变性。但特别是国际化对于旧日历的东西更好,例如本地化的周定义支持,对于某些人来说这是关于Joda-Time的一个显示。

d)还要记住,Joda-Time现在是一个旧的API(例如,不使用枚举)。一些内部概念被其自己的开发人员有效地弃用,以支持Java 8中的新日期和时间库(JSR-310,java-time-package)。我的预测,Joda-Time将逐渐淡出 - 也是因为很明显Stephen Colebourne更喜欢将他的资源投入到Java-8和一个名为Threeten-Extra的额外外部库(其中包含一些额外的日历系统)。支持Joda-Time的主要剩余论据仍然是支持混合日期和时间段,一些简单的区间支持和句点格式支持。