【问题标题】:How can I set a specific date into a Joda Time DateTime object?如何将特定日期设置为 Joda Time DateTime 对象?
【发布时间】:2016-11-22 14:47:58
【问题描述】:

我是 Joda Time 的新手,我有以下疑问:

我只是简单地创建了一个新的空DateTime 对象,这样:

DateTime dataMovimentoFittizio = new DateTime();

我的问题是,在我看来,我无法为这个对象设置年、月和日。

我怎样才能在这个对象中正确设置一个特定的日期?

【问题讨论】:

  • 除了DateTime() 之外,还有许多其他可用于DateTime 的构造函数。你看过documentation吗?
  • @GriffeyDog 我知道构造函数,但我不能在构造对象之后设置它吗?
  • 不,DateTime 对象是不可变的。
  • 从文档开始:“DateTime 是不可修改的日期时间类的标准实现。”所以不,你不能。但是有很多“withYear”、“withDate”等方法可以根据现有的一一区别创建新实例。
  • 如果您使用的是 Java 8,您应该使用 JSR-310,它位于 java.time 包中。

标签: java date datetime jodatime


【解决方案1】:

不可变对象

Joda-Time 类大多使用immutable objects,旨在实例化后不更改。

使用方法部分基于现有对象中的值来实例化新对象。

java.time

Joda-Time 项目现在处于维护模式,建议迁移到 java.time 类。

java.time 类严格使用immutable objects

LocalDate

对于没有时间和时区的仅日期值。使用LocalDate

LocalDate ld = LocalDate.of( 2016 , 1 , 23 );  // January 23, 2016

【讨论】:

    猜你喜欢
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多