System.currentTimeMillis()转换
时间: 2025-04-22 13:47:09 浏览: 50
### 将 `System.currentTimeMillis()` 的时间戳转换为其他日期格式
`System.currentTimeMillis()` 返回自 1970 年 1 月 1 日 00:00:00 UTC 开始经过的毫秒数[^1]。为了将这个时间戳转换成易于阅读的日期字符串,通常会使用 `SimpleDateFormat` 或者更新的 `java.time` API。
#### 使用 `SimpleDateFormat`
下面是一个简单的例子展示如何利用 `SimpleDateFormat` 来格式化由 `System.currentTimeMillis()` 获取到的时间戳:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
// 获取当前时间毫秒数
long currentTime = System.currentTimeMillis();
// 定义你需要的日期格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 创建 Date 对象并传入时间戳
Date date = new Date(currentTime);
// 转换为你自己定义的日期格式
String formattedDate = simpleDateFormat.format(date);
System.out.println("当前时间为:" + formattedDate);
}
}
```
这段代码将会打印出形如 “当前时间为:2023-08-15 14:30:45”的输出[^4]。
#### 使用 `java.time` API (推荐)
对于较新的 Java 版本(Java 8 及以上),建议采用更为现代的方式——即通过 `Instant`, `ZonedDateTime` 和 `DateTimeFormatter` 类来进行操作。这种方式不仅线程安全而且提供了更好的国际化支持以及更多的功能选项。
```java
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
Instant instant = Instant.ofEpochMilli(System.currentTimeMillis());
ZoneId zoneId = ZoneId.systemDefault();
DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(zoneId);
String formattedDate = formatter.format(instant);
System.out.println("当前时间为:" + formattedDate);
}
}
```
此段程序同样能够得到类似于上面提到的那种易读形式的时间表示,并且更加灵活和强大[^2]。
阅读全文
相关推荐



















