Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีแปลงมิลลิวินาทีเป็นวันที่และเวลาใน Java


คลาส java.text.SimpleDateFormat ใช้จัดรูปแบบและแปลงสตริงเป็นวันที่ และวันที่เป็นสตริง

ขั้นตอนการแปลงมิลลิวินาทีเป็นวันที่

  1. สร้างรูปแบบฟอร์แมต เช่น dd MMM yyyy HH:mm:ss:SSS Z
  2. สร้างอ็อบเจกต์ Date จากมิลลิวินาที ด้วย constructor new Date(millis)
  3. จัดรูปแบบวันที่ด้วยเมธอด format()

ตัวอย่าง 1: ใช้ SimpleDateFormat

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

public class Sample {
    public static void main(String args[]) throws ParseException {
        long msec = 3550154;
        
        // กำหนดรูปแบบการแสดงผล
        SimpleDateFormat dateFormatter = new SimpleDateFormat("dd MMM yyyy HH:mm:ss:SSS Z");
        
        // สร้าง Date จากมิลลิวินาที
        Date date = new Date(msec);
        
        System.out.println("Date value: " + dateFormatter.format(date));
    }
}

ผลลัพธ์

Date value: 01 Jan 1970 06:29:10:154 +0530

ตัวอย่าง 2: ใช้ Calendar และ Date

import java.util.Calendar;
import java.util.Date;

public class Sample {
    public static void main(String args[]) {
        Calendar calendar = Calendar.getInstance();
        long msec = calendar.getTimeInMillis();
        Date obj = new Date(msec);
        System.out.println(obj);
    }
}

ผลลัพธ์

Wed Nov 11 22:04:59 IST 2020

ตัวอย่าง 3: ใช้ Java 8 Time API (แนะนำ)

import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class Sample {
    public static void main(String args[]) {
        long msec = 3550154;
        
        // แปลงเป็น Instant แล้วไปยัง ZonedDateTime
        Instant instant = Instant.ofEpochMilli(msec);
        ZonedDateTime zdt = instant.atZone(ZoneId.of("Asia/Bangkok"));
        
        // จัดรูปแบบการแสดงผล
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm:ss:SSS z");
        System.out.println("Date value: " + zdt.format(formatter));
    }
}

รูปแบบวันที่ที่ใช้บ่อย (DateTimeFormatter patterns)

Patternคำอธิบายตัวอย่าง
yyyy-MM-ddวันที่มาตรฐาน ISO2024-01-15
dd/MM/yyyyวันที่แบบไทย15/01/2024
HH:mm:ssเวลา 24 ชั่วโมง14:30:45
hh:mm:ss aเวลา 12 ชั่วโมง AM/PM02:30:45 PM
EEEEชื่อวันเต็มMonday
MMMMชื่อเดือนเต็มJanuary