2013-11-22 33 views
0

按问题标题,我想知道是否有一些稍微比这更简洁:如何轻松地转换乔达YearMonth到LocalDateTime

new YearMonth(2014, 1).toLocalDate(1).toLocalDateTime(new LocalTime()) 

也许是实用的方法或实例方法?

+0

为什么你不喜欢那样? YearMonth只是一个部分日期,所以需要每月的一天创建一个完整的本地日期。仍然是本地日期不是当地日期时间,因为时间不见了。所以需要另一个方法调用。总而言之,但不言自明。 – isnot2bad

+0

我想是的。另一种方法是:New YearMonth(2014,1).toLocalDateTime()默认的日期和时间,但如果这是好的做法,这是有争议的。 –

+0

好的,我认为2014和1只是例子而不是常量!如果年,月和日是固定的,您也可以尝试:新的LocalDateTime(新的LocalDate(2014,1,1)) – isnot2bad

回答

1

您的示例使用当前时间。如果这是任意的,半夜会做,试试:

new LocalDateTime(1980, 1, 1, 0, 0).withFields(new YearMonth(2014, 1)) 

您可以再拉LocalDateTime为常数更简洁:

FIRST_OF_MONTH.withFields(new LocalDateTime(2014, 1)) 

,或等同于你提出的“toLocalDateTime”:

LocalDateTime.now().withFields(new LocalDateTime(2014, 1))