Java でのエポックから MySQL タイムスタンプへの変換
Java プログラマーは、UNIX からの秒数を表すエポック時間を変換する必要があることがよくあります。エポックを MySQL タイムスタンプ形式に変換します。 Java の最新の Date-Time API である java.time.
java.time
Java SE 8 で導入された java.time は、包括的でエラー耐性のある日付/時刻 API。以下に示すように、ANSI SQL 型を java.time 型にマップします。
ANSI SQL | Java SE 8 |
---|---|
DATE | LocalDate |
TIME | LocalTime |
TIMESTAMP | LocalDateTime |
TIME WITH TIMEZONE | OffsetTime |
TIMESTAMP WITH TIMEZONE | OffsetDateTime |
Epoch から MySQL タイムスタンプへの変換
java.time を使用すると、簡単に変換できます。 MySQL へのエポック時間timestamp:
// Get current epoch time in milliseconds long epochNow = System.currentTimeMillis(); // Create a LocalDateTime object from the epoch time LocalDateTime timestampNow = Instant.ofEpochMilli(epochNow).atZone(ZoneId.systemDefault()).toLocalDateTime(); // Convert to MySQL timestamp format using DateTimeFormatter String mySQLtimestamp = timestampNow.format(DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss"));
使用例
提供されたコード スニペットには、現在の時刻を表す epochNow と、過去 7 日間のタイムスタンプを表す date7daysAgo があります。上記のコードを使用して、両方のタイムスタンプを MySQL 形式に簡単に変換し、mySQLtimestamp に保存できます。
String mySQLtimestampNow = LocalDateTime.ofInstant(Instant.ofEpochMilli(epochNow), ZoneId.systemDefault()) .format(DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss")); String mySQLtimestamp7DaysAgo = LocalDateTime.ofInstant(Instant.ofEpochMilli(date7daysAgo), ZoneId.systemDefault()) .format(DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss"));
以上がJavaでエポックタイムをMySQLタイムスタンプに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。