2016-04-13 32 views
-6

Bir web hizmetinden dizeler olarak tarihleri ​​alıyorum.
Aşağıdaki dize biçimindedirler.
"2016-04-12 12:18:11.000 EDT"
Dokümantasyon çok iyi değil ama sanırım bu standart bir tarih formatı.
Bu formatı tanıyor musunuz?
En kolay şekilde onu Date içine nasıl ayrıştırabilirim?belirli bir tarih dizesi biçimi

+4

Aslında dokümantasyon, hatta bir [öğretici] ile gerçekten çok iyi gelir (https://docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat. html) – Norsk

+0

Web servis dokümanlarını kastettim. Vay, 4 downvot ... Bu delilik. Çok teşekkürler. İnsanlar SO Java etiketinde gerçekten yardımcı oluyorlar. –

+0

Java'da altın bir rozetiniz var ve String to Date'i nasıl ayrıştıracağınızı bilmiyor musunuz? "Vay" dediğim şey buydu. – Tom

cevap

3

bence yyyy-MM-dd HH:mm:ss.SSS zzz

DateFormat gmtFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS zzz"); 
    TimeZone gmt = TimeZone.getTimeZone("GMT"); 
    gmtFormat.setTimeZone(gmt); 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); 
    Date dd = df.parse("2016-04-12 12:18:11.000 EDT"); 
    System.out.println(gmtFormat.format(dd)); 
dikkate alarak yyyy-MM-dd HH:mm:ss.SSS zzz veya örnek 2016/04/12 dan

yyyy-dd-MM HH:mm:ss.SSS zzz, bu olabilir 12 Nisan 2016 veya 4 Aralık 2016

basit bir örnek ya

çıkış: 2016-04-12 06: 48: 11.000 GMT

+0

Bu ay benim için ilk sırada geliyor, teşekkürler. Denerim. –

2

Böyle yapabilirsiniz: sistem farklı bir dilde ise

String date = "2016-04-12 12:18:11.000 EDT"; 
DateFormat parseFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS z", Locale.US); 
Date d = parseFormat.parse(date); 

Yerel önemlidir.

1

kullanımı bu model:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS z"); 


y Year (e.g. 12 or 2012). Use either yy or yyyy. 
M Month in year. Number of M's determine length of format (e.g. MM, MMM or MMMMM) 
d Day in month. Number of d's determine length of format (e.g. d or dd) 
H Hour of day, 0-23 (normally HH) 
m Minute in hour, 0-59 (normally mm) 
s Second in minute, 0-59 (normally ss) 
S Millisecond in second, 0-999 (normally SSS) 
z Time Zone 
+0

Başka bir cevap z z z yerine (zaman dilimi için) önerir. Fark ne? –

+0

aslında hiçbir fark yok. bir 'z' yeterlidir. –