当前位置: 首页 > 面试题库 >

使用Java日期和时间类,还是应该使用Joda Time这样的第三方库?

汲时铭
2023-03-14
问题内容

我正在创建一个基于Web的系统,该系统将在世界各地的国家中使用。日期和时间是一种必须存储的数据。

与第3方库(如Joda time)相比,使用Java日期和时间类的优缺点是什么?我猜这些第三方库的存在是有充分理由的,但是我自己从来没有真正比较过它们。


问题答案:

编辑:现在已经发布了Java 8,如果可以使用,请这样做!java.time在我看来,它甚至比Joda Time还干净。但是,如果你在Java-8之前仍受困,请继续阅读…

Max询问使用Joda的利弊…

优点:

  • 效果很好。我强烈怀疑Joda中的错误比标准Java库少得多。由于设计的原因,Java库中的某些错误确实很难修复(如果不是不可能的话)。
  • 它旨在鼓励你以正确的方式考虑日期/时间的处理-将“本地时间”(例如“无论我在哪里早上7点叫醒我”)的概念和时间间隔(“我叫詹姆斯”太平洋标准时间(PST)下午3点;可能不是他所在的下午3点,但这是同一时刻”)
  • 我相信这样可以更轻松地更新时区数据库,因为时区数据库的更改确实相对频繁
  • 它具有良好的不变性的故事,这让生活很多容易IME。
  • 从不变性出发,所有格式器都是线程安全的,这非常好,因为你几乎总是想在应用程序中重用单个格式器
  • 你将抢先学习java.timeJava 8,因为它们至少有些相似

缺点:

  • 这是另一个需要学习的API(尽管文档相当不错)
  • 这是另一个可以构建和部署的库
  • 当你使用Java 8时,仍然需要进行一些工作以迁移你的技能
  • 我过去一直未能DateTimeZoneBuilder有效使用。但是,这是一个非常罕见的用例。

为了回应oxbow_lakes有效构建自己的小型API的想法,以下是我对这是一个坏主意的看法:

  • 这是工作。为什么已经为你完成工作?
  • 与自己的API相比,团队的新手更可能熟悉Joda
  • 除了最简单的用途以外,你可能还会犯错……即使你最初认为只需要简单的功能,这些习惯也会使一次变得越来越复杂,甚至一点点。日期和时间操作很难正确执行。此外,内置Java API很难正确使用 -只需查看日历API的日期/时间算术如何工作的规则即可。在这些之上构建任何东西都是一个坏主意,而不是使用一个设计良好的库作为开始。


 类似资料:
  • 本文向大家介绍Java日期时间使用方法汇总,包括了Java日期时间使用方法汇总的使用技巧和注意事项,需要的朋友参考一下 一、Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题。  在Java中,操作日期主要涉及到一下几个类:  1、java.util.Date     

  • 在Python中执行整数和浮点数的数学运算时很简单的。 尽管如此,如果你需要执行分数、数组或者是日期和时间的运算的话,就得做更多的工作了。 本章集中讨论的就是这些主题。 Contents: 3.1 数字的四舍五入 3.2 执行精确的浮点数运算 3.3 数字的格式化输出 3.4 二八十六进制整数 3.5 字节到大整数的打包与解包 3.6 复数的数学运算 3.7 无穷大与NaN 3.8 分数运算 3.

  • 问题内容: Java 8中有一整套日期类: ; ; ; ; ; 。 我已经忽略了他们的JavaDocs,并注意所有这些类都包含我需要的所有方法。因此,目前,我可以随机选择它们。但是我想为什么有6个单独的类并且每个类都专用于特定目的是有原因的。 技术信息和要求: 输入为,将转换为这些日期格式之一。 我不需要显示时区,但是当我比较两个日期时,能够正确比较纽约和巴黎的时间很重要。 精确的级别是秒,无需使

  • 问题内容: 我正在使用c / c 为osx和linux开发命令行界面可执行文件。该项目将链接到opencv。我应该使用libc 还是libstdc ++? 问题答案: 我会为每个操作系统使用本机库,即GNU / Linux上的libstdc 和Mac OS X上的libc 。 libc 在GNU / Linux上不是100%完整的,而libstdc 更完整时使用libc并没有真正的优势。另外,如果

  • 问题内容: 和CSS 和有什么不一样?我应该使用哪一个?为什么? 问题答案: 所有这些答案似乎都是不正确的。与直觉相反,在CSS 中不是pixel 。至少不是在简单的物理意义上。 从W3C,EM,PX,PT,CM,IN…阅读本文,了解如何为CSS发明一个“神奇的”单元。的含义因硬件和分辨率而异。(该文章是最新的,最新更新为2014-10。) 我自己的思考方式: px单位是CSS的魔术单位。它与当前

  • 问题内容: 我正在一个将Angular和Underscore都作为依赖项的项目。 当我需要创建对象的副本时,根据当时的心情,我可以使用或 在我看来,这些方法中的一种可能比另一种更快速/可靠/健壮。 假设已经包含两个库,那么这两个函数中的任何一个是否存在使另一个函数更好或更坏使用的已知问题? 问题答案: 关于您的问题: angular.copy和_.clone是不同的。这不是哪个更好的问题,而是关于