2014-09-28 104 views
1

我嘗試解析字符串(俄語語言環境)「01августа2014,пятница。20:00МСК」到java.util.Date。我試試這個代碼:解析字符串日期與國家格式的時區

String dateString = "01 августа 2014, пятница. 20:00 МСК" 
Locale rusLocale = new Locale.Builder().setLanguage("ru").setScript("Cyrl").build(); 
String pattern = "dd MMMM yyyy, EEEE. HH:mm z" 
Date date = SimpleDateFormat(pattern, rusLocale).parse(dateString) 

在每月和平日此代碼的工作很好,但是當我嘗試解析字符串區名稱МСК我得到java.text.ParseException:不可解析日期。當我將MCK更改爲MSK「2014年1月1日,20:00 MSK」代碼也可以正常工作。所以我們可以分析字符串月份和星期幾,但不能用時區來做,或者「MCK」只是無效?

+0

[Java SimpleDatetime parse]的可能重複(http://stackoverflow.com/questions/26076595/java-simpledatetime-parse) – 2014-09-28 16:02:10

回答

0

試試看看這個代碼。我認爲這與你的代碼有關。

String dateString = "17 октябрь 2014, пятница. 20:00"; 
    Locale rusLocale = new Locale.Builder().setLanguage("ru").setScript("Cyrl").build(); 
    String pattern = "dd MMMM yyyy, EEEE. HH:mm"; 
    try { 
     SimpleDateFormat dateFormat = new SimpleDateFormat(pattern, rusLocale); 
     dateFormat.setTimeZone(TimeZone.getTimeZone("МСК")); 
     Date date = dateFormat.parse(dateString); 
    } catch (ParseException e) { 
    ...