2013-03-06 8 views
0

Я получаю дату в формате «1/23/2013 6:57:17 AM» и необходимо преобразовать ее в формат «2012-01-01T12: 00: 00». Я мог бы решить проблему, используя строковые функции и отделяя дату и время и обрабатывая их отдельно. Но проблема связана с тем, что формат даты - M/D/YYYY, и даже время имеет только h: mm: ss, что означает, что я не могу предположить количество символов перед каждым разделителем. Я надеюсь, что кто-то раньше занимался чем-то подобным. Благодарю.Как преобразовать в формат Timestamp в Java?

+1

http://stackoverflow.com/questions/3469507/how-can-i-change-the-date-format-in-java» – BobTheBuilder

+0

Вы могли бы пожелать, чтобы посмотреть в Joda Время: HTTP: // joda-time.sourceforge.net/ – Quetzalcoatl

ответ

3

No, String функции не путь.

Я бы рекомендовал использовать два экземпляра DateFormat: один для исходного текста и другой для целевого формата.

DateFormat source = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a"); 
source.setLenient(false); 
DateFormat target = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
target.setLenient(false); 
String dateAsString = "1/23/2013 12:00:00 AM"; 
Date d = source.parse(dateAsString); 
System.out.println(target.format(d)); 
+0

Sry для позднего ответа. Спасибо за ответ... – MadN

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