2012-03-14 34 views
6

ile ayrıştırmak için doğru model nedir? Varolan dizeleri ayrıştırmak için Java SimpleDaterFormat için bir desen tanımlamak istiyorum.Saat dilimi formatını SimpleDateFormat

Mevcut tarihler şu şekildedir: 2011-05-02T13:40:00+02:00.

Farklı desenlerle denedim, ancak ParseExceptions aldım. Sorun, saat dilimi biçimi gibi görünüyor.

Java desen baskı:

  • yyyy-MM-dd'T'HH:mm:ssZ
    • 2012-03-14T15:40:44+0100
  • yyyy-MM-dd'T'HH:mm:ssz
    • 2012-03-14T15:41:58MEZ

Ama nasıl

  • alabilirsiniz ???
    • 2011-05-02T13:40:00+02:00

Ben Java 7 veya daha yeni kullanabilirsiniz varsa, bakmak için zaman dilimini almak için XXX deseni kullanabilirsiniz Java 6 değil, Java 7.

cevap

5

kullanıyorum gibi 02: 00: diliminin befor gelen nokta üst üste çıkarmak için tarih dizesi manipüle gerekebilir Aksi

yyyy-MM-dd'T'HH:mm:ssXXX 

e ayrıştırma.

+0

Thx Sen fazla örnek var java 6. ile de kullanabilirsiniz. Evet, ISO 8601 Saat dilimi desteği Java 7 ile gerçekleştirildi, ancak uygulamam Java 1.6 altında çalışıyor. – cuh

+1

Belki de yalnızca biçimlendiriciye iletmeden önce iki nokta üst üste kaldırabilirsin? Sanırım bu regex yalnızca kolonun orada olması durumunda bir etki yaratmalı: dateString.replaceFirst ("(\\ d \\ d): (\\ d \\ d) $", "$ 1 $ 2") – matts

+0

Değiştiremiyorum İlk önce dize. Bir veri kümesini içe aktarmak için bir araç kullanıyorum ve sadece bir kalıp tanımlayabilirim. – cuh

0

Bunun biraz eski bir soru olduğunu biliyorum, ancak başka biri ipucumdan yararlanabilir. JodaTime'u kullanabilirsiniz. duran documentation kütüphane olarak:

Bölge: 'Z' çıkışları 'ZZ' ofset iki nokta üst üste 'ZZZ' ya da daha fazla çıkış bölgesi kimliği çıktılar, iki nokta üst üste olmayan ofset.

Sen this question

İlgili konular