gpt4 book ai didi

java - 更新 Joda DateTime 对象

转载 作者:行者123 更新时间:2023-11-29 05:45:30 25 4
gpt4 key购买 nike

假设我有一个 Joda DateTime 对象,由以下模式表示“MMM d,yyyy/HHmm”

有没有办法独立于两个字符串更新 DateTime“日部分”或“时间部分”?

例如:

DateTime aDateTime initial : JAN 1, 1970 / 2230

如果我有一个字符串 aDayString="FEB 3, 1980" 和一个字符串 aTimeString="1520",

  • 如何仅更新 aDateTime day(以获得 FEB 3, 1980/2230)?
  • 如何仅更新 aDateTime 时间(以获得 JAN 1, 1970/1520)?

最佳答案

乔达的 DateTime对象是不可变的,所以就像 String 一样,当你改变一个值时,你会得到一个新的实例。因此:

DateTime initial = new DateTime( 1970, 1, 1, 22, 30, 0 );
DateTime dayUpdated = initial.withDate( 1980, 2, 3 );
DateTime timeUpdated = initial.withTime( 15, 20, 0, 0 );
// At this point, initial still contains 1970-1-1, 22:30
// dayUpdated is 1980-2-3 22:30
// timeUpdated is 1970-1-1 15:20

如果您要处理大量此类更改并希望减少垃圾收集器负载,您可以使用 MutableDateTime拥有一个可以直接修改的初始实例。

MutableDateTime mutable = new MutableDateTime( 1970, 1, 1, 22, 30, 0 );
mutable.setDate( 1980, 2, 3 );
mutable.setTime( 15, 20, 0, 0 );
// at this point, mutable contains 1980-2-3 15:20

在大多数常见情况下,拥有不可变对象(immutable对象)的可预测性胜过拥有可变实例的好处,因此我建议采用第一种方法。

关于java - 更新 Joda DateTime 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15986622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com