Я хочу преобразовать системную дату и время в формате 2016-02-14T15: 50: 39Z. Как добиться использования java?
Как конвертировать текущую дату и время в формате 2016-02-14T15: 50: 39Z?
Ответ 1
TL;DR
Instant.now()
       .toString()
2018-01-23T01: 23: 45.678901Z
Подробнее
Другие ответы используют старые устаревшие классы.
ISO 8601
Ваш желаемый формат соответствует стандарту ISO 8601.
 Z на конце означает Zulu, что означает UTC.
java.time
В Java 8 и более поздних версиях используйте встроенную инфраструктуру java.time.
В классах java.time по умолчанию используются форматы ISO 8601 при разборе/генерации текстовых представлений значений даты и времени.
Instant
An Instant - это момент на временной линии в формате UTC. Метод now получает текущий момент. Что касается Java 8 Update 74, то метод now получает текущий момент с millisecond, но будущие версии могут полностью соответствовать nanosecond разрешение, которое может поместиться в Instant.
Метод Instant::toString генерирует строку так, как вы хотите, используя группы цифр (0, 3, 6 или 9) по мере необходимости для дробной секунды.
String output = Instant.now().toString();  // Example: 2016-02-14T15:50:39.123Z 
Сократить дробную секунду
Если вам не нужна доля секунды, как показано в примере с вашими примерами, обрезайте с вызовом with, передавая ChronoField.NANO_OF_SECOND enum.
String output = Instant.now().with( ChronoField.NANO_OF_SECOND , 0 ).toString();  // Example: 2016-02-14T15:50:39Z (no '.123' at end)
Еще проще, вызовите метод truncatedTo, передав ChronoUnit.SECONDS enum.
String output = Instant.now().truncatedTo( ChronoUnit.SECONDS ).toString();
Если вы хотите усечь на целую минуту, а не на целую секунду, см. этот другой вопрос.
Ответ 2
Попробуйте этот код:
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
    public static void main(String[] args)
    {
        Date dt=new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
        String formattedDate = formatter.format(dt);
        System.out.println(formattedDate);
    }
}
Вы можете попробовать несколько других форматов даты здесь.
Ответ 3
используйте простой формат даты ниже:
Date curDate = new Date();
    SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
    String DateToStr = format.format(curDate);
    System.out.println(DateToStr);
    format = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
    DateToStr = format.format(curDate);
    System.out.println(DateToStr);
    format = new SimpleDateFormat("dd MMMM yyyy zzzz", Locale.ENGLISH);
    DateToStr = format.format(curDate);
    System.out.println(DateToStr);
    format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z");
    DateToStr = format.format(curDate);
    System.out.println(DateToStr);
    try {
        Date strToDate = format.parse(DateToStr);
        System.out.println(strToDate);
    } catch (ParseException e) {
        e.printStackTrace();
    }
}
