2013-06-09 4 views
1

Я пытаюсь отформатировать gregorian календарь в определенном формате, чтобы выполнить веб-сервис, но я не знаю, как сделать его изящным. Прямо сейчас я пытаюсь отформатировать, получив час минуты и разобрав их, но это выглядит ужасно. Мне нужно отформатировать его как xsd: dateTime 2001-10-26T21: 32: 52, 2001 Любая помощь оценивается. Спасибо!Java-григорианский календарь в определенном формате

+0

Посмотрите на javadoc 'SimpleDateFormat'. – fge

+0

Вы можете использовать SimpleDateFommat, используя формат «yyyy-MM-dd'T'HH: mm: ss, yyyy» или simular – MadProgrammer

ответ

4

Должен быть прямой перемещение вперед, чтобы настроить формат, что вам нужно ... это производит "2013-06-08T20: 56: 25Z"

SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
timeFormat.setTimeZone(TimeZone.getTimeZone("GMT")); 
String time = timeFormat.format(new Date()); 
+0

Элегантный и работающий идеально! благодаря –

0

Использование joda:

DateTime dt = new DateTime(); 
DateTimeFormatter fmt = ISODateTimeFormat.dateTime(); 
String str = fmt.print(dt); 
1

Попробуйте следующее:

import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 
import java.util.GregorianCalendar; 

public class ConversionExamplesDate { 

    // Convert from String to date 
    private void stringToDate() { 

    try { 
     Date date1; 
     date1 = new SimpleDateFormat("MM/dd/yy").parse("05/18/05"); 
     System.out.println(date1); 
     Date date2 = new SimpleDateFormat("MM/dd/yyyy").parse("05/18/2007"); 
     System.out.println(date2); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    } 

    // Convert from millisecs to a String with a defined format 
    private void calcDate(long millisecs) { 
    SimpleDateFormat date_format = new SimpleDateFormat("MMM dd,yyyy HH:mm"); 
    Date resultdate = new Date(millisecs); 
    System.out.println(date_format.format(resultdate)); 
    } 

    private void writeActualDate(){ 
    Calendar cal = new GregorianCalendar(); 
    Date creationDate = cal.getTime(); 
    SimpleDateFormat date_format = new SimpleDateFormat("MMM dd,yyyy HH:mm"); 
    System.out.println(date_format.format(creationDate)); 
    } 


    public static void main(String[] args) { 
    ConversionExamplesDate convert = new ConversionExamplesDate(); 
    convert.stringToDate(); 
    convert.calcDate(System.currentTimeMillis()); 
    convert.writeActualDate(); 
    } 
}