2012-12-27 34 views
33

Tôi muốn thời gian hiện tại tính bằng milis và sau đó lưu trữ ở định dạng 12 giờ nhưng với đoạn mã này, tôi nhận được thời gian định dạng 24 giờ.SimpleDateFormat trả về ngày 24 giờ: cách nhận ngày 12 giờ?

long timeInMillis = System.currentTimeMillis(); 
Calendar cal1 = Calendar.getInstance(); 
cal1.setTimeInMillis(timeInMillis); 
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy HH:mm:ss a"); 
dateforrow = dateFormat.format(cal1.getTime()); 

ai cũng có thể đề xuất sửa đổi để có được kết quả mong muốn?

+4

này (Vị trí đầu tiên để xem xét là API Ngoài ra, cố gắng tóm tắt các vấn đề trong tiêu đề tốt hơn:.. Nó làm cho một ấn tượng lớn đầu tiên) –

Trả lời

103

Thay đổi HH-hh như

long timeInMillis = System.currentTimeMillis(); 
Calendar cal1 = Calendar.getInstance(); 
cal1.setTimeInMillis(timeInMillis); 
SimpleDateFormat dateFormat = new SimpleDateFormat(
           "dd/MM/yyyy hh:mm:ss a"); 
dateforrow = dateFormat.format(cal1.getTime()); 

Lưu ý rằng dd/mm/yyyy - sẽ cung cấp cho bạn phút thay vì tháng.

0
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss a"); 

sử dụng hh ở vị trí của HH

29

Đề cập đến SimpleDataFormat JavaDoc:

Letter | Date or Time Component | Presentation | Examples 
--------------------------------------------------------- 
    H | Hour in day (0-23) | Number | 0 
    h | Hour in am/pm (1-12) | Number | 12 
+0

private String getCurrentTimeStamp () { SimpleDateFormat timestamp = new SimpleDateFormat ("yyyyMMddHHmmss"); return timestamp.format (new Date()); }. điều này sẽ cung cấp cho bạn 24 giờ fomrat ..... trong trường hợp yyyyMMddhhmmss sẽ trả về định dạng 12 giờ. – PrinceMidha

4

Hi Tôi đã thử nghiệm bên dưới mã mà làm việc tốt:

long timeInMillis = System.currentTimeMillis(); 
    Calendar cal1 = Calendar.getInstance(); 
    cal1.setTimeInMillis(timeInMillis); 
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss a"); 
    dateFormat.format(cal1.getTime()); 
3

Yep, khẳng định mà chỉ đơn giản sử dụng hh thay vì HH cố định vấn đề của tôi.

Thay đổi từ này:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm aa"); 

Để này:

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa"); 

Bạn vẫn có thể sử dụng để lưu trữ HH thời điểm đó nếu bạn không muốn làm phiền lưu trữ và xử lý với AM/PM . Sau đó, khi bạn lấy nó, sử dụng hh.

-1

Xem mã ví dụ dưới đây:

SimpleDateFormat df = new SimpleDateFormat("hh:mm"); 
String formattedDate = df.format(new Date()); 
out.println(formattedDate); 
4

Tôi lại cuộc gặp gỡ này trong cách cứng là tốt. H vs h, trong 24 giờ và 12 giờ!

1

Bạn có thể thử nó như

Calendar c= Calendar.getInstance(); 

    SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a"); 
    String str=sdf.format(c.getTime()); 
Các vấn đề liên quan