我想我现在已经很好地掌握了约会。因此,我在类中创建了一个新对象,并为其分配了一个 Date 属性,并告诉它打印 Date 属性。确实如此,但就像 C# 中通常所做的那样,它提供了日期和时间。但在 C# 中,您可以通过以下方式更改它:
Console.WriteLine("myDate = {0}:d", myDate);
并且 :d 将其更改为普通的日期格式,没有时间。 Java中有类似的方法吗?
您可能正在使用有严重缺陷的
java.util.Date
类。这是遗留的日期时间类之一,现已被 JSR 310 中定义的现代 java.time 类取代。
A
java.util.Date
,尽管它的名字选得不好,但它代表了时间线上的一个点,一个时刻。该类已被 java.time.Instant
取代。要进行转换,请使用添加旧类的新 to
/from
方法。
Instant instant = myJavaUtilDate.toInstant() ;
java.util.Date
和java.time.Instant
都没有约会。请记住,对于任何特定时刻,全球各地的日期都会因时区而变化。日本东京是“明天”,而美国俄亥俄州托莱多则是“昨天”。因此,要确定任何时刻的日期,您必须指定您想要感知日历的时区。
ZoneId zTokyo = ZoneId.of( "Asia/Tokyo" ) ;
将该 ZoneId
对象应用于
Instant
对象以实例化
ZonedDateTime
对象。
ZonedDateTime zdtTokyo = instant.atZone( zTokyo ) ;
现在提取日期部分。
LocalDate ld = zdtTokyo.toLocalDate() ;