2013-06-03 10 views
-2

У меня есть строка кода C#, которую я пытаюсь реплицировать на Java. Код выглядит следующим образом.Преобразование формата времени даты в Java

n.InnerText = DateTime.Parse(n.InnerText).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ"); 

Цель состоит в том, чтобы заменить DateTime уже в контексте xml одним представляющим универсальное время.

Я попытался использовать

node.setTextContent = Date.parse(node.getTextContent()) 

, но я не смог продолжить из-за Date.parse() устаревшим. Я прочитал заметку в Eclipse и попробовал DateFormat, как было предложено, но DateFormat не имеет метода синтаксического анализа.

Может кто-нибудь предложить решение моей проблемы, которая не использует сторонние библиотеки?

+0

Устаревшие. Начиная с версии JDK версии 1.1, заменяется DateFormat.parse (String s). – LiverpoolFTW

+0

@Johnathon Ender, проверьте http://stackoverflow.com/a/9886992/1160207 и обратитесь к http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html. –

ответ

5

Вы можете использовать:

DateFormat format = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ssZ"); 
Date date = format.parse(myString); 

Обязательно проверьте локаль, если это уместно, и проверить, что поля одинаковы (как я не знаю, что вы собираетесь анализировать, я просто скопировал их).

(например, "Т" не существует.)

0

Вы имеете в виду, как это:

import java.util.Date; 
import java.text.SimpleDateFormat; 

public class DateFormat{ 
    public static void main(String[] args){ 

    Date date=new Date(); 
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 

    String yourDate=sdf.format(date); 
    System.out.println(yourDate); 

    } 
} 
3
Date d = new Date(); 
    (java.text) SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
    sdf.setTimeZone(TimeZone.getTimeZone("Etc/UTC")); 
    String formatted = sdf.format(d); 
0

Другие ответы устарели, используя старые устаревшие классы.

java.time

Рамки java.time встроенный в Java 8, а затем вытесняет хлопотно старые классы даты и времени.

ISO 8601

Ваша входная строка случается в стандартном формате ISO 8601.

В классах java.time по умолчанию используются форматы ISO 8601 при разборе/генерации строковых представлений значений даты и времени. Поэтому нет необходимости указывать шаблон форматирования.

Instant представляет собой моменту времени в UTC с разрешением nanoseconds.

Instant instant = Instant.parse("2016-04-29T22:04:07Z"); 
Смежные вопросы