2016-12-09 2 views
0

У меня есть этот формат (String) даты: 4 утра CST 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 утра CST 9 декабря 16»

Я действительно не уверен, но это потому, что месяц в моей SDATE, все персонажи в верхнем регистре и dateformat «MMM» единственное прописное письмо является первой буквой каждого месяца?

+0

не может воспроизвести (JDK 1.8.0_77) код штрафа – Vitaly

+0

JDK 1.6.0_45 и 1.7.0_80 работает отлично работает слишком – amicoderozer

+1

вы на Android? Возможно, что-то с текстовыми ресурсами отличается от ввода на вашей платформе ... Вы можете попытаться выяснить, используя печать DateFormatSymbols.xyz (...) 'что за кулисами. –

ответ

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»

Смежные вопросы