Menterjemah Epoch ke MySQL Timestamp dalam Java
Pengaturcara Java sering menghadapi keperluan untuk menukar masa Epoch, mewakili bilangan saat sejak Unix zaman, ke dalam format cap waktu MySQL. Begini cara untuk mencapai penukaran ini menggunakan API Tarikh-Masa moden Java, java.time.
java.time
Diperkenalkan dengan Java SE 8, java.time menyediakan API Tarikh-Masa yang komprehensif dan tahan ralat. Ia memetakan jenis ANSI SQL kepada jenis java.time, seperti yang ditunjukkan di bawah:
ANSI SQL | Java SE 8 |
---|---|
DATE | LocalDate |
TIME | LocalTime |
TIMESTAMP | LocalDateTime |
TIME WITH TIMEZONE | OffsetTime |
TIMESTAMP WITH TIMEZONE | OffsetDateTime |
Menukar Epoch kepada MySQL Timestamp
Menggunakan java.time, seseorang boleh menukar dengan mudah Tempoh masa kepada cap masa MySQL:
// 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"));
Contoh Penggunaan
Dalam coretan kod yang anda berikan, anda mempunyai epochNow yang mewakili masa dan tarikh semasa7daysAgo mewakili cap masa 7 hari yang lalu. Anda boleh menukar kedua-dua cap masa kepada format MySQL dengan mudah menggunakan kod di atas dan menyimpannya dalam 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"));
Atas ialah kandungan terperinci Bagaimana untuk Menukar Epoch Time ke MySQL Timestamp di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!