Java equivalent of .NET DateTime.MinValue, DateTime.Today
是否有Java等价于DateTime.MinValue和DATETIME?今天在Java日期类中?或者实现类似目标的方法?
我已经意识到你在.NET日期时间类上有多糟糕,我还需要与addDays()、addMonths()等效的东西。
事实上Java日期时间API是JoDA时间。
使用它,只需构造
同样,如果没有它,您可以使用
其他答案可能是正确的,但使用过时的课程。
Java.时间旧的日期时间类(Java.U.L.Deal/Calm等)被JoDA时间所取代,而JoDA时间又被Java.Time框架取代了Java 8和更高版本。JavaTime类是由JoDA时间启发的,由JSR 310定义,由TrutEnEnter Project扩展,通过TeReTeNeN后端项目返回到Java 6和7,并适用于TruteTeNABP项目中的Android。见教程。
要以纳秒分辨率获得UTC时间线上的当前时刻,请使用
1 | Instant now = Instant.now(); |
EPOCH —1970-01-01T00:00:00Z 。MIN —-1000000000-01-01T00:00Z 。MAX —1000000000-12-31T23:59:59.999999999Z 。
要获得当前从UTC偏移的时刻,请应用
1 | OffsetDateTime now = OffsetDateTime.now( ZoneOffset.of("-04:00" ) ); |
如果知道的话,最好应用一个完整的时区(偏移加上异常情况的规则,如夏令时)。应用
1 | ZonedDateTime now = ZonedDateTime.now( ZoneId.of("America/Montreal" ) ); |
你可以做算术。
1 2 | ZonedDateTime dayLater = now.plusDays( 1 ); ZonedDateTime monthLater = now.plusMonths( 1 ); |
你可以得到一天中的第一个时刻。
1 2 | ZoneId zoneId = ZoneId.of("America/Montreal" ); ZonedDateTime tomorrowStart = now.toLocalDate().atStartOfDay( zoneId ); // Usually time-of-day of `00:00:00.0` but not always. |
如果您只需要一个没有时间和时区的日期,请使用
1 2 | LocalDate localDate = LocalDate.now( zoneId ); LocalTime localTime = LocalTime.now( zoneId ); |
.NET和Java中日期/时间特性的比较
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | +--------------------+----------------------------------------+----------------------------+ | .NET DateTime (C#) | Joda DateTime (Java) [See Note #2] | Java Date | +--------------------+----------------------------------------+----------------------------+ | | | | | DateTime.MinValue | new DateTime(Long.MIN_VALUE) | new Date(Long.MIN_VALUE) | | | | [See Note #3] | | | | | | DateTime.Today | new DateTime().withTimeAtStartOfDay() | Messy [See Note #4] | | | | | | DateTime.Now | new DateTime() | new Date() | | | | | | DateTime.MaxValue | new DateTime(Long.MAX_VALUE) | new Date(Long.MAX_VALUE) | | | | | +--------------------+----------------------------------------+----------------------------+ |
附加说明:
日历http://download.oracle.com/javase/1.5.0/docs/api/java/util/calendar.html下载
日期http://download.oracle.com/javase/1.4.2/docs/api/java/util/date.html下载
也有简单的格式化日期格式。http://download.oracle.com/javase/1.4.2/docs/api/java/text/simpledateformat.html
要获取当前日期:
calendar calendar=calendar.getInstance();simpledateformat dateformat=new simpledateformat("dd/mm/yyyy");
1 2 3 4 5 6 7 |
大多数日期操作现在应该使用日历对象来完成。
http://download.oracle.com/javase/6/docs/api/java/util/calendar.html下载