2016-12-09 22 views
0

私は日付のこの形式(String)を持っている:4 AM CST 12月9日16解析できない日付の例外 - 月日付形式

私はこのコードを使用して解析する:

String sDate = "4 AM CST 9 DEC 16"; 
Date st = new SimpleDateFormat("h aaa z d MMM yy",Locale.ENGLISH).parse(sDate); 
DateFormat formatter = DateFormat.getDateTimeInstance(
          DateFormat.LONG, 
          DateFormat.FULL, 
          new Locale("no")); 
        sDate = formatter.format(st); 

をしかし、私は代わりに、この例外を持つ:

java.text.ParseException:解析できない日:「4 AM CST 9を12月16日」

私は本当にわからないんだけど、それは私のSDATEの月ためだった、文字が全てです大文字で唯一の大文字が各月の最初の文字ですか?

+0

を再現することはできません(JDK 1.8.0_77)あなたのコードは、 – Vitaly

+0

JDK 1.6.0_45および1.7.0_80作品罰金正常に動作しますか?テキストリソースを持つものがあなたのプラットフォームの入力と異なるかもしれません...背後にあるのは 'DateFormatSymbols.xyz(...)'を印刷することで調べるかもしれません。 – amicoderozer

+1

は、Android上であなたはあまりにも –

答えて

1

このコード:正常に動作します

import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.util.Locale; 

public class Main { 
    public static void main(String[] args) throws ParseException { 
    String sDate = "4 AM CST 9 DEC 16"; 
    Date st = new SimpleDateFormat("h aaa z d MMM yy", Locale.ENGLISH).parse(sDate); 
    DateFormat formatter = DateFormat.getDateTimeInstance(
     DateFormat.LONG, 
     DateFormat.FULL, 
     new Locale("no")); 
    sDate = formatter.format(st); 
    System.out.print(sDate); 
    } 
} 
。私はJavaのバージョンを持っている 「1.8.0_77」は

関連する問題