SORU
22 Temmuz 2010, PERŞEMBE


Joda kullanarak Tarih Ve Saat birden biçimi ayrıştırmak için API

Üçüncü taraf günlük dosyaları tarih/saat içeren Joda kullanarak ayrıştırma ediyorum. Tarih/saat iki farklı biçimleri, ayrıştırma ediyorum günlük dosyaları yaşına bağlı olarak.

Şu anda bu kod var:

try {
    return DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss").parseDateTime(datePart);
} catch (IllegalArgumentException e) {
    return DateTimeFormat.forPattern("E, MMM dd, yyyy HH:mm").parseDateTime(datePart);
}

Bu çalışıyor ama Etkili Java 2 Sürüm (Madde 57: olağanüstü koşullar sadece özel durumlar için Kullanın), Joshua Bloch tavsiyesine aykırı. Ayrıca zor bir Sınıftır, bir günlük dosyası saat/berbat bir tarih nedeniyle oluşur olup olmadığını belirlemek için yapar.

Yanlış istisnalar yok bu daha güzel bir yaklaşım önerir misiniz?

CEVAP
2 Aralık 2010, PERŞEMBE


Birden fazla ayrıştırıcıları oluşturmak ve DateTimeFormatterBuilder.append yöntemi kullanarak: oluşturucu ekleyebilirsiniz

DateTimeParser[] parsers = { 
        DateTimeFormat.forPattern( "yyyy-MM-dd HH" ).getParser(),
        DateTimeFormat.forPattern( "yyyy-MM-dd" ).getParser() };
DateTimeFormatter formatter = new DateTimeFormatterBuilder().append( null, parsers ).toFormatter();

DateTime date1 = formatter.parseDateTime( "2010-01-01" );
DateTime date2 = formatter.parseDateTime( "2010-01-01 01" );

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BrandonHarrisWalker

    BrandonHarri

    27 Kasım 2006
  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • TheSalband Rai

    TheSalband R

    11 NİSAN 2011