Разбор строки Java Timestamp - PullRequest
       20

Разбор строки Java Timestamp

1 голос
/ 22 марта 2011

Мне нужно преобразовать значение метки времени строки в объект Java Date. Строка в формате «2011-03-16T09: 00: 00-05: 00». Есть ли представление часового пояса, которое я могу использовать, чтобы загрузить эти данные как объект Date, используя SimpleDateFormat? «z», «Z» и «zzzz» - единственные представления о часовом поясе, о которых я знаю, и ни одно из них не может представлять данные о моем часовом поясе (-05: 00). Кто-нибудь решил эту проблему?

Спасибо.

Ответы [ 3 ]

1 голос
/ 22 марта 2011

JodaTime может помочь. Попробуйте использовать его и пользовательский форматер (называемый «причудливыми форматерами»).

http://joda -time.sourceforge.net / userguide.html # Input_and_Output

0 голосов
/ 23 марта 2011

Видя, что предоставленный формат меток времени выглядит как стандартный формат, используемый в XML, вы можете попробовать следующее:

public static void main(String[] args) throws DatatypeConfigurationException {

    String inDate = "2011-03-16T09:00:00-05:00";

    javax.xml.datatype.DatatypeFactory factory = DatatypeFactory.newInstance();

    javax.xml.datatype.XMLGregorianCalendar xmlGregCal = factory.newXMLGregorianCalendar(inDate);

    java.util.GregorianCalendar gregCal = xmlGregCal.toGregorianCalendar();

    java.util.Date dateObj = gregCal.getTime();

    System.out.println("cal = " + xmlGregCal.toString());
    System.out.println("cal.year = " + xmlGregCal.getYear());
    System.out.println("cal.month = " + xmlGregCal.getMonth());
    System.out.println("cal.day = " + xmlGregCal.getDay());
    System.out.println("cal.hour = " + xmlGregCal.getHour());
    System.out.println("cal.minute = " + xmlGregCal.getMinute());
    System.out.println("cal.second = " + xmlGregCal.getSecond());
    System.out.println("cal.timezone = " + xmlGregCal.getTimezone());
    System.out.println("cal.eonAndYear = " + xmlGregCal.getEonAndYear());
}

Созданный вывод выглядит следующим образом:

cal = 2011-03-16T09: 00: 00-05: 00
cal.year = 2011 кал.месяц = ​​3
кал.день = 16
кал.час = 9
cal.minute = 0
cal.second = 0
cal.timezone = -300
cal.eonAndYear = 2011

0 голосов
/ 22 марта 2011

К сожалению, двоеточие в часовом поясе немного усложняет ситуацию.Возможно, вы захотите взглянуть на этот вопрос .

...