Java 8 如何使用java.time从时间戳获取hourofday?

Java 8 如何使用java.time从时间戳获取hourofday?,java-8,java-time,Java 8,Java Time,从java.util.Date(时间戳)中,如何获取一天中的小时数 在joda.time中,我使用getHourOfDay()。有多种解决方案。如果希望使用Java.time中的Java 8类,则需要将Date转换为其中一个DateTime类。以下内容可用于将日期转换为分区日期时间,从中可以获取小时数: Date date = new Date(); // Convert to java 8 ZonedDateTime Date date = new Date(); final ZonedDa

从java.util.Date(时间戳)中,如何获取一天中的小时数


在joda.time中,我使用getHourOfDay()。

有多种解决方案。如果希望使用
Java.time
中的Java 8类,则需要将
Date
转换为其中一个DateTime类。以下内容可用于将
日期
转换为
分区日期时间
,从中可以获取小时数:

Date date = new Date();

// Convert to java 8 ZonedDateTime
Date date = new Date();
final ZonedDateTime dateTime = date.toInstant()
        .atZone(ZoneId.systemDefault());

// Get the hour
int hour = dateTime.getHour();
正如您所注意到的,非常详细,但原因很简单,
日期是

尽管名称不同,
java.util.Date
表示时间线上的一个瞬间,而不是“日期”。自1970-01-01T00:00Z(1970 GMT/UTC开始时的午夜)以来,存储在对象中的实际数据是一个很长的毫秒计数

另一种方法是简单地从
日历
实例获取字段

final Calendar instance = Calendar.getInstance();
instance.setTime(date);
final int hourOfDay = instance.get(Calendar.HOUR_OF_DAY);

有多种解决方案。如果希望使用
Java.time
中的Java 8类,则需要将
Date
转换为其中一个DateTime类。以下内容可用于将
日期
转换为
分区日期时间
,从中可以获取小时数:

Date date = new Date();

// Convert to java 8 ZonedDateTime
Date date = new Date();
final ZonedDateTime dateTime = date.toInstant()
        .atZone(ZoneId.systemDefault());

// Get the hour
int hour = dateTime.getHour();
正如您所注意到的,非常详细,但原因很简单,
日期是

尽管名称不同,
java.util.Date
表示时间线上的一个瞬间,而不是“日期”。自1970-01-01T00:00Z(1970 GMT/UTC开始时的午夜)以来,存储在对象中的实际数据是一个很长的毫秒计数

另一种方法是简单地从
日历
实例获取字段

final Calendar instance = Calendar.getInstance();
instance.setTime(date);
final int hourOfDay = instance.get(Calendar.HOUR_OF_DAY);

有多种解决方案。如果希望使用
Java.time
中的Java 8类,则需要将
Date
转换为其中一个DateTime类。以下内容可用于将
日期
转换为
分区日期时间
,从中可以获取小时数:

Date date = new Date();

// Convert to java 8 ZonedDateTime
Date date = new Date();
final ZonedDateTime dateTime = date.toInstant()
        .atZone(ZoneId.systemDefault());

// Get the hour
int hour = dateTime.getHour();
正如您所注意到的,非常详细,但原因很简单,
日期是

尽管名称不同,
java.util.Date
表示时间线上的一个瞬间,而不是“日期”。自1970-01-01T00:00Z(1970 GMT/UTC开始时的午夜)以来,存储在对象中的实际数据是一个很长的毫秒计数

另一种方法是简单地从
日历
实例获取字段

final Calendar instance = Calendar.getInstance();
instance.setTime(date);
final int hourOfDay = instance.get(Calendar.HOUR_OF_DAY);

有多种解决方案。如果希望使用
Java.time
中的Java 8类,则需要将
Date
转换为其中一个DateTime类。以下内容可用于将
日期
转换为
分区日期时间
,从中可以获取小时数:

Date date = new Date();

// Convert to java 8 ZonedDateTime
Date date = new Date();
final ZonedDateTime dateTime = date.toInstant()
        .atZone(ZoneId.systemDefault());

// Get the hour
int hour = dateTime.getHour();
正如您所注意到的,非常详细,但原因很简单,
日期是

尽管名称不同,
java.util.Date
表示时间线上的一个瞬间,而不是“日期”。自1970-01-01T00:00Z(1970 GMT/UTC开始时的午夜)以来,存储在对象中的实际数据是一个很长的毫秒计数

另一种方法是简单地从
日历
实例获取字段

final Calendar instance = Calendar.getInstance();
instance.setTime(date);
final int hourOfDay = instance.get(Calendar.HOUR_OF_DAY);

您可以将
ZonedDateTime
转换为
LocalDateTime
,但是
getHour()
也可以在
ZonedDateTime
上使用,因此不需要额外的转换。您可以将
ZonedDateTime
转换为
LocalDateTime
,但是
getHour()
也可以在
ZonedDateTime
上使用,因此,额外的转换是不必要的。您可以将
ZonedDateTime
转换为
LocalDateTime
,但是
getHour()
上也提供了
ZonedDateTime
,因此额外的转换是不必要的。您可以将
ZonedDateTime
转换为
LocalDateTime
,但是
getHour()
ZoneDateTime
上也可用,因此不需要额外的转换。