Joda-Time`DateTime`类是否具有如Javascript Date对象中可用的setHours()/ setMinutes()等方法

时间:2014-12-31 17:01:46

标签: datetime time jodatime

我想在Joda-Time库的DateTime课程中手动设置小时/分钟/秒。我想要做的是保持年/月/日值,但丢弃日期对象的小时/分钟/秒。

DateTime today = new DateTime();
today.??? (method to call set hours/minutes/seconds to 0)
祝大家新年快乐!

1 个答案:

答案 0 :(得分:0)

不可变对象

默认情况下,

Joda-Time使用immutable objects。我们调用一个方法来生成一个主要基于原始实例的新实例,而不是调用setter方法来改变(“mutate”)一个成员变量。

withTime

要创建具有特定时间的新DateTime,请调用withTime方法。

DateTime now = DateTime.now( DateTimeZone.forID( "America/Montreal" ) );
DateTime lunchtimeToday = now.withTime( 12, 30, 0, 0 ); // Half-past noon.

当天的第一个时刻

如果您想要午夜(当天的第一时刻),请致电withTimeAtStartOfDay。通常这是00:00:00.000,但并非总是如此。

DateTime todayStart = DateTime.now( DateTimeZone.forID( "America/Montreal" ) ).withTimeAtStartOfDay();

时区至关重要

请注意,时区对于确定一天何时开始至关重要。巴黎的“今天”比蒙特利尔更早开始。

如果省略时区,则会自动应用JVM的当前默认时区。最好指定而不是隐含地依赖此默认值。

使用proper time zone names。避免使用既不标准化也不唯一的3或4个字母代码。