5

Mam czas w milisekundach na przykład. 1308700800000; Muszę przekonwertować go na coś takiego jak Jun 9'11 at 02:15 PM.Własny ciąg daty i czasu od milisekund

Próbowałem za pomocą

SimpleDateFormat format = new SimpleDateFormat("MMM D'\''YY"); 

ale pojawia się wyjątek:

Caused by: java.lang.IllegalArgumentException: Unterminated quote 

Każda pomoc będzie bardzo mile widziane.

+0

pls dodać trochę kodu i pełne wyjątków ślad – fmucar

+3

http://joda-time.sourceforge.net/ uczyni Twoje życie o wiele łatwiej podczas obsługi daty i czasu w java – NimChimpsky

Odpowiedz

11

Z komunikatu o wyjątku jasno wynika, że ​​problem będzie dotyczyć ciągu formatów, w szczególności wokół pojedynczej części cytatu.

Patrząc na documentation, widzimy, że:

Tekst może być cytowany za pomocą apostrofów (') aby uniknąć interpretacji. "" "reprezentuje pojedynczy cytat.

Zatem wierzę, format (do tej daty częściowo zgodnie z istniejącym przykład) może być tak proste, jak

new SimpleDateFormat("MMM d''yy") 

Nie ma potrzeby, aby uzyskać backslashy zaangażowanych.

+0

'java.lang.IllegalArgumentException: Nielegalny znak wzorca 'Y'' – oliholz

+0

Niestety, skupiałem się na problemach z składnią apostrofów i tym samym wstawiłem je do istniejącego formatu za pomocą constrastu. W celu uczynienia tej odpowiedzi kopią i wklejeniem zaktualizowałem przypadek argumentów dnia i roku. –

+2

Zgodnie z sugestią Grooveeka czapki D i Y nie działały, to zrobiło sztuczkę SimpleDateFormat format = new SimpleDateFormat ("MMM d'" yy "at" hh: mm aaa "); –

3

try:

import java.util.*; 
import java.text.*; 

class D { 
    public static void main(String ... args) { 
     System.out.println( 
      new SimpleDateFormat("MMM dd''yy") 
      .format(new Date(1308700800000L )) 
     ); 
    } 
} 

drukuje:

Jun 21'11 
2

Andrzej ma rację, ale czapki D i Y nie będzie pracować dla Ciebie. Przeczytaj ten dokument, ale że powinno działać:

SimpleDateFormat format = new SimpleDateFormat("MMM d''yy 'at' HH:mm:ss z") 
+1

SimpleDateFormat format = new SimpleDateFormat ("MMM d''yy" at "hh: mm aaa"); załatwił sprawę .. –