Java相当于.NET DateTime.MinValue、DateTime.Today
Java Date类中是否有DateTime.MinValue和DateTime.Today的Java等价物?或者是实现类似目标的方法Java相当于.NET DateTime.MinValue、DateTime.Today,java,datetime,date,Java,Datetime,Date,Java Date类中是否有DateTime.MinValue和DateTime.Today的Java等价物?或者是实现类似目标的方法 我已经意识到你对.NET datetime类有多么着迷,我还需要相当于AddDays()、AddMonths()的函数。事实上的Java datetime API是 有了它,您只需构造newdatetime(),即可获得当前日期/时间 类似地,如果没有它,您可以使用Calendar.getInstance()或new Date()获取当前日期/时间 MinVal
我已经意识到你对.NET datetime类有多么着迷,我还需要相当于AddDays()、AddMonths()的函数。事实上的Java datetime API是 有了它,您只需构造
newdatetime()
,即可获得当前日期/时间
类似地,如果没有它,您可以使用Calendar.getInstance()
或new Date()
获取当前日期/时间
MinValue
可以是Calendar.getInstance(0)
/新日期(0)
。这将使用默认的年表-即自1970年1月1日起。由于MinValue
返回第一年的1月1日,您可以通过使用DateTime
的相应构造函数指定此日期来执行此操作,大多数日期操作现在都应该使用Calendar对象来完成
要获取当前日期,请执行以下操作: 日历=Calendar.getInstance(); SimpleDataFormat dateFormat=新的SimpleDataFormat(“dd/MM/yyyy”) 有日历 日期 还有用于格式化的SimpleDataFormat。 比较.NET和Java中的日期/时间功能 补充说明:
其他答案可能是正确的,但使用过时的类 java.time 旧的日期时间类(java.util.date/.Calendar等)被替代,而java 8及更高版本中内置的框架又取代了旧的日期时间类。time类受ThreeTen Extra项目的启发,由该项目定义,由该项目扩展,由该项目向后移植到Java6和Java7,并在该项目中适应Android。看 要获得时间线上分辨率为的当前时刻,请使用
Instant
有三个常量:
- –
1970-01-01T00:00:00Z
- –
-100000000-01-01T00:00Z
- –
100000000-12-31T23:59:59.99999999 Z
ZonedDateTime dayLater = now.plusDays( 1 );
ZonedDateTime monthLater = now.plusMonths( 1 );
你可以得到一天中的第一刻
ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime tomorrowStart = now.toLocalDate().atStartOfDay( zoneId ); // Usually time-of-day of `00:00:00.0` but not always.
如果您只需要一个没有时间和时区的日期,请使用。类似地,仅适用于不带日期和时区的时间。通常最好坚持使用Instant
和OffsetDateTime
/zoneDateTime
,因为Local…
类型不代表时间线上的实际时刻(没有偏移或时区意味着它们未定义)
这并不能回答他的问题。@Bozho,正如Chris所理解的,我正试图为他指出使用核心Java进行日期处理的正确方向。我不认为是Bozho,我已经读了足够多的你的答案,所以我觉得你没有那么小气。我承认答案本可以有更多的细节,但我真的没有时间。Java内置日期不好。花3秒钟的时间在Joda time周围构建,你会更开心。我听说过Jon Skeet的api,但是这个android友好吗?我相信它完全是android友好的。(Jon Skeet将JodaTime移植到.NET(noda time))我认为Joda time不是他的noda time,我会尝试一下。我可以用历元作为最小值(我正在寻找一些东西来表明没有设置日期),我也不太确定相反的想法。请看。第一个问题仍然没有答案
Instant now = Instant.now();
OffsetDateTime now = OffsetDateTime.now( ZoneOffset.of( "-04:00" ) );
ZonedDateTime now = ZonedDateTime.now( ZoneId.of( "America/Montreal" ) );
ZonedDateTime dayLater = now.plusDays( 1 );
ZonedDateTime monthLater = now.plusMonths( 1 );
ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime tomorrowStart = now.toLocalDate().atStartOfDay( zoneId ); // Usually time-of-day of `00:00:00.0` but not always.
LocalDate localDate = LocalDate.now( zoneId );
LocalTime localTime = LocalTime.now( zoneId );