首頁 >資料庫 >mysql教程 >如何在 Java 中將紀元時間轉換為 MySQL 時間戳記?

如何在 Java 中將紀元時間轉換為 MySQL 時間戳記?

Patricia Arquette
Patricia Arquette原創
2024-12-12 18:13:09751瀏覽

How to Convert Epoch Time to a MySQL Timestamp in Java?

在Java 中將紀元時間轉換為MySQL 時間戳

在Java 和MySQL 中處理時間值時,轉換紀元時間,表示自Unix 紀元以來的秒數,可能需要轉換為MySQL 時間戳記格式。

要實作此轉換,需要流行的方法涉及使用 Java 8 java.time API。此 API 提供了一組用於處理日期和時間的現代類別和接口,包括不同格式之間的轉換。

將紀元時間轉換為MySQL 時間戳

以下程式碼片段示範如何使用java.time API 將紀元時間轉換為MySQL 時間戳記:

import java.time.LocalDateTime;

// Convert epoch time in milliseconds to seconds
long epochSeconds = System.currentTimeMillis() / 1000;

// Create a LocalDateTime object from the epoch seconds
LocalDateTime timestamp = LocalDateTime.ofEpochSecond(epochSeconds, 0, java.time.ZoneOffset.UTC);

// Format the LocalDateTime object as a MySQL timestamp string
String mySQLTimestamp = timestamp.toString();

產生的mySQLTimestamp字串的格式為YYYY-MM-DD HH:MM:SS,與 MySQL 時間戳記資料類型相容。

替代方法:SimpleDateFormat

而通常建議使用java.time API 來處理日期和時間,這是使用舊版SimpleDateFormat 轉換紀元時間的另一種方法class :

import java.text.SimpleDateFormat;
import java.util.Date;

// Convert epoch time in milliseconds to a Date object
Date date = new Date(epochSeconds * 1000);

// Create a SimpleDateFormat to format the Date as a MySQL timestamp string
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD HH:MM:SS");

// Format the Date object as a MySQL timestamp string
String mySQLTimestamp = sdf.format(date);

與java.time API相比,由於潛在的線程安全性問題以及不同版本 JDK 之間的不一致,這種方法不太受歡迎。

以上是如何在 Java 中將紀元時間轉換為 MySQL 時間戳記?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn