Java SimpleDateFormat for YYYY-MM-DDThh:mm:ssTZD [duplicate]

蓝咒 提交于 2020-05-22 19:08:10

问题


One of the external APIs we use requires

"YYYY-MM-DDThh:mm:ssTZD"

format to be passed in

XMLGregorianCalendar

object. I am not sure if there is anything in Java that supports "T". I was wondering, if a date can be parsed into above format in Java? An example of a valid date they have provided is

"2009-07-16T19:20:30-05:00"............

 Update:

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZ");        
        GregorianCalendar gc = new GregorianCalendar();
        String dateString = sdf.format(gc.getTime());       
        gc.setTime(sdf.parse(dateString));      
        XMLGregorianCalendar date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);

Output:

2014-04-17T13:11:30.000+01:00


回答1:


Use JodaTime's DateTimeFormat API with "yyyy-MM-dd'T'HH:mm:ssZ" date pattern

String date = "2009-07-16T19:20:30-05:00";
String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";
DateTimeFormatter dtf = DateTimeFormat.forPattern(pattern);
DateTime dateTime = dtf.parseDateTime(date);
System.out.println(dateTime); // 2009-07-16T19:20:30-05:00



回答2:


Try Java 8 LocalDateTime.parse

You could also use threeten if you're on an earlier Java Version.

Example: DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ").format(yourLocalDateTime)




回答3:


You need to put it in single quotes.

Try

YYYY-mm-dd'T'hh:MM:ssZ



回答4:


Yes,you can.Try this date formatter.

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");


来源:https://stackoverflow.com/questions/23132145/java-simpledateformat-for-yyyy-mm-ddthhmmsstzd

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!