2015-04-02 2 views
0

У меня есть следующая строка «2015-04-02 11: 52: 00 + 02», и мне нужно проанализировать ее на Java на отметку времени. Я пробовал все виды форматов, включаяTimestamp string to timestamp в java

SimpleDateFormat mdyFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss+Z"); 

, но ничего, кажется, работает - я постоянно получаю ParseException

Может кто-нибудь помочь?

мне нужно что-то вроде:

SimpleDateFormat mdyFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss+Z"); 


Timestamp t = new Timestamp(mdyFormat.parse("2015-04-02 11:52:00+02").getTime()); 
+0

Опубликовать свой StackTrace !! –

+0

Исключение в потоке «main» java.text.ParseException: Непревзойденная дата: «2015-04-02 11: 52: 00 + 02» \t at java.text.DateFormat.parse (Неизвестный источник) \t at com .. ..... Main.main (Main.java:45) – Alexandr

+0

Не уверен, что вы можете использовать Java 8, но [этот пост] (http://stackoverflow.com/questions/22463062/how-to-parse-format -dates-with-localdatetime-java-8) может помочь вам. – Pete

ответ

1

Try This

String str="2009-12-31 23:59:59 +0100"; 
           /\ 
           || 
         Provide Space while providing timeZone 

SimpleDateFormat mdyFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); 
System.out.println(mdyFormat.parse(str)); 

Выход

Fri Jan 01 04:29:59 IST 2010 
0

попробовать "yyyy-MM-dd HH:mm:ssX"

Z стенд для часового пояса в следующем формате: +0800

X стенд для часового пояса в следующем формате: +08

Примеры here объекты

+0

nope, не работает. – Alexandr

+0

Редактировать с правильным форматом – jhamon

0

java.sql.Timestamp не имеют временных зон - они в моменты времени, как java.util.Date

Так попробуйте это:

SimpleDateFormat mdyFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Timestamp t = new Timestamp(mdyFormat.parse("2015-04-02 11:52:00").getTime()); 
0

ISO 8601

Заменить, что пространство в середине с T и у вас есть правильный стандарт (ISO 8601) строка формата, который может быть проанализирован непосредственно либо Joda-Time библиотеки или новым java.time package встроенного в Java 8 (вдохновленный Joda-Time). Поиск StackOverflow для сотен примеров.

Если вы используете java.time, прочитайте мой комментарий по вопросу об ошибке при анализе только значения смещения часов.

Пример в Joda-Time 2.7.

String inputRaw = "2015-04-02 11:52:00+02"; 
String input = inputRaw.replace(" ", "T"); 
DateTimeZone zone = DateTimeZone.forID("America/Montreal"); // Specify desired time zone adjustment. 
DateTime dateTime = new DateTime(input, zone);