java 时间戳转换
时间: 2023-02-09 18:16:30 浏览: 76
时间戳是表示一个时间的数字,通常是表示从 1970 年 1 月 1 日(或其他某个时间)到现在的时间间隔,以毫秒为单位。
在 Java 中,你可以使用 `java.util.Date` 类来表示日期和时间,这个类有一个构造函数可以接受一个 long 类型的时间戳作为参数,然后你就可以使用这个 `Date` 对象来获取具体的年月日时分秒等信息。
例如:
```java
long timestamp = 1610347061000L;
Date date = new Date(timestamp);
// 使用 SimpleDateFormat 来格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = sdf.format(date);
System.out.println(dateString); // 输出 "2022-11-20 13:37:41"
```
如果你想将日期转换为时间戳,也可以使用 `Date` 类的 `getTime()` 方法来获取时间戳:
```java
Date date = new Date();
long timestamp = date.getTime();
```
注意:Java 中的时间戳是以毫秒为单位的,而不是以秒为单位,所以如果你的时间戳是以秒为单位的,别忘了将它乘上 1000。
相关问题
java 时间戳转换日期
Java中时间戳可以使用`java.util.Date`和`java.time.Instant`类进行转换。
使用`java.util.Date`类:
```java
long timestamp = 1619165197L; // 时间戳
Date date = new Date(timestamp * 1000L); // 将时间戳转换为毫秒
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 格式化日期
String formattedDate = dateFormat.format(date);
System.out.println(formattedDate);
```
使用`java.time.Instant`类:
```java
long timestamp = 1619165197L; // 时间戳
Instant instant = Instant.ofEpochSecond(timestamp);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault()); // 格式化日期
String formattedDate = formatter.format(instant);
System.out.println(formattedDate);
```
注意:时间戳通常是以秒为单位,需要乘以1000转换为毫秒。
java时间戳转换成日期
在Java中,你可以使用`java.util.Date`或其更现代的替代品`java.time.Instant`来处理时间戳到日期的转换。这里分别给出两个例子:
**使用`Date`类:**
```java
import java.util.Date;
import java.text.SimpleDateFormat;
long timestamp = 1645795200000L; // 示例时间戳,单位毫秒
// 创建一个Date对象
Date date = new Date(timestamp);
// 使用SimpleDateFormat将日期格式化为字符串(需要指定日期格式)
String dateFormat = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
String dateString = sdf.format(date);
System.out.println("日期字符串:" + dateString);
```
**使用`Instant`和`ZonedDateTime`:**
```java
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
long timestampMs = 1645795200000L; // 同样的时间戳,毫秒
Instant instant = Instant.ofEpochMilli(timestampMs);
// 创建ZonedDateTime,可以根据时区转换
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, zoneId);
// 格式化日期
String formattedDateString = zonedDateTime.format(DateTimeFormatter.ISO_DATE_TIME);
System.out.println("日期字符串:" + formattedDateString);
```
这两种方法都能将时间戳转换为人类可读的日期字符串。
阅读全文