2012-12-27 17 views
33

Chcę bieżący czas w millis, a następnie przechowywać go w formacie 12-godzinnym, ale z tego kawałka kodu otrzymuję format 24 godzinny.SimpleDateFormat zwraca 24-godzinną datę: jak uzyskać 12-godzinną datę?

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()); 

Czy ktoś może zaproponować modyfikacje, aby uzyskać pożądane wyniki?

+4

(pierwsza miejscem do szukania jest API Również spróbować podsumować ten problem w tytule lepiej.. To robi dużą pierwsze wrażenie) –

Odpowiedz

103

Zmień HH do hh jak

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()); 

Zauważ, że dd/mm/yyyy - dadzą Ci minut zamiast miesiąca.

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

użycie hh zamiast HH

29

Nawiązując do 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 () { Znacznik czasu SimpleDateFormat = nowy SimpleDateFormat ("yyyyMMddHHmmss"); return timestamp.format (new Date()); }. da ci to 24 h fomrat ..... w przypadku rrrrMMddhmmmmss powróci format 12 godz. – PrinceMidha

4

Witam testowane poniżej kod, który pracował w porządku:

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

Tak, potwierdził, że po prostu za pomocą hh zamiast HH naprawił mój problem.

Zmieniono z tego:

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

do tego:

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

Można nadal używać HH do przechowywania czasu, jeśli nie chce niepokoić przechowywania i radzenia sobie z AM/PM . Następnie, gdy ją odzyskasz, użyj hh.

-1

patrz przykład kodu poniżej:

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

I ponownie to spotkanie w twardej drodze, jak również. H vs h, przez 24 godziny na 12 godzin!

1

Można spróbować jak to

Calendar c= Calendar.getInstance(); 

    SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a"); 
    String str=sdf.format(c.getTime());