在开发中,Java时间戳是一个非常基础又重要的概念。无论是记录日志、生成唯一ID,还是进行时间比较,都离不开时间戳。本文将手把手教你如何在Java中获取、转换和使用时间戳,即使你是编程小白也能轻松上手!
时间戳(Timestamp)是指从 1970年1月1日 00:00:00 UTC(称为“Unix纪元”)到当前时间所经过的毫秒数(在Java中默认是毫秒,有些语言用秒)。它是一个长整型数字,例如:1712345678901。
Java提供了多种方式来获取当前时间戳,下面是最常用的几种方法:
public class TimestampExample { public static void main(String[] args) { long timestamp = System.currentTimeMillis(); System.out.println("当前时间戳(毫秒): " + timestamp); }} 这是最简单、最高效的方式,返回的是自 Unix 纪元以来的毫秒数。
import java.time.Instant;public class TimestampExample2 { public static void main(String[] args) { long timestamp = Instant.now().toEpochMilli(); System.out.println("当前时间戳(毫秒): " + timestamp); }} Instant 是 Java 8 引入的新时间 API 的一部分,更加现代化且线程安全。
拿到时间戳后,我们通常需要把它转换成人类可读的日期格式,比如 “2024-04-05 14:30:22”。下面展示如何实现这一转换。
import java.text.SimpleDateFormat;import java.util.Date;public class TimestampToDate { public static void main(String[] args) { long timestamp = 1712345678901L; // 示例时间戳 Date date = new Date(timestamp); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDate = sdf.format(date); System.out.println("格式化后的日期: " + formattedDate); }} import java.time.Instant;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.format.DateTimeFormatter;public class TimestampToDateNew { public static void main(String[] args) { long timestamp = 1712345678901L; LocalDateTime dateTime = LocalDateTime.ofInstant( Instant.ofEpochMilli(timestamp), ZoneId.systemDefault() ); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDate = dateTime.format(formatter); System.out.println("格式化后的日期: " + formattedDate); }} Q:时间戳是秒还是毫秒?
A:在 Java 中,System.currentTimeMillis() 返回的是毫秒。如果你看到的时间戳是10位(如 1712345678),那是秒;13位(如 1712345678901)则是毫秒。
Q:如何将字符串日期转为时间戳?
A:可以先用 SimpleDateFormat 或 DateTimeFormatter 解析字符串为 Date 或 LocalDateTime,再转换为时间戳。例如:
// Java 8+String dateString = "2024-04-05 14:30:22";LocalDateTime dt = LocalDateTime.parse(dateString, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));long timestamp = dt.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();System.out.println("时间戳: " + timestamp); 通过本教程,你已经掌握了 Java获取时间戳 的基本方法、如何将 时间戳转换 为可读日期,以及处理常见的 Java日期处理 场景。无论你是做Web开发、App后端还是数据分析,这些技能都非常实用。
记住:优先使用 Java 8+ 的新时间 API(如 Instant、LocalDateTime),它们更安全、更清晰,避免了旧类(如 Date、Calendar)的诸多陷阱。
希望这篇关于 Java时间戳 的教程对你有帮助!快去动手试试吧!
本文由主机测评网于2025-12-15发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025127864.html