java 13位时间戳 转化日期 分别取 年月日 和 小时分 2种结果
时间: 2024-12-24 11:21:04 浏览: 4
在Java中,将13位的时间戳(通常表示自1970年1月1日00:00:00 GMT以来的毫秒数)转换成具体的年月日和小时分钟,可以按照以下步骤操作:
1. **转换为Date对象**:
首先,你需要把13位时间戳除以1000,将其转换为毫秒级别,然后使用`java.util.Date`构造函数创建一个Date对象。
```java
long timestamp = yourThirteenBitTimestamp / 1000L;
Date date = new Date(timestamp);
```
2. **获取年月日部分**:
使用`SimpleDateFormat`或者`LocalDate`来解析Date对象,并提取年、月、日信息。这里是一个示例用`SimpleDateFormat`:
```java
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String yearMonthDay = sdf.format(date);
int year = Integer.parseInt(yearMonthDay.substring(0, 4));
int month = Integer.parseInt(yearMonthDay.substring(4, 6));
int day = Integer.parseInt(yearMonthDay.substring(6, 8));
```
3. **获取小时分钟部分**:
同样地,使用`SimpleDateFormat`提取小时和分钟:
```java
sdf = new SimpleDateFormat("HHmm");
String hourMinute = sdf.format(date);
int hour = Integer.parseInt(hourMinute.substring(0, 2));
int minute = Integer.parseInt(hourMinute.substring(2, 4));
```
完整代码示例:
```java
long timestamp = yourThirteenBitTimestamp / 1000L;
Date date = new Date(timestamp);
SimpleDateFormat sdfYmd = new SimpleDateFormat("yyyyMMdd");
String yearMonthDay = sdfYmd.format(date);
int year = Integer.parseInt(yearMonthDay.substring(0, 4));
int month = Integer.parseInt(yearMonthDay.substring(4, 6));
int day = Integer.parseInt(yearMonthDay.substring(6, 8));
SimpleDateFormat sdfHm = new SimpleDateFormat("HHmm");
String hourMinute = sdfHm.format(date);
int hour = Integer.parseInt(hourMinute.substring(0, 2));
int minute = Integer.parseInt(hourMinute.substring(2, 4));
// 输出年月日和小时分钟
System.out.println("Year: " + year + ", Month: " + month + ", Day: " + day);
System.out.println("Hour: " + hour + ", Minute: " + minute);
```
阅读全文