Конвертировать java.util.Date в строку - PullRequest
383 голосов
/ 16 апреля 2011

Я хочу преобразовать объект java.util.Date в String в Java.

Формат 2010-05-30 22:15:52

Ответы [ 17 ]

4 голосов
/ 22 сентября 2015

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

currentISODate = new Date().parse("yyyy-MM-dd'T'HH:mm:ss", "2013-04-14T16:11:48.000");

, где "гггг-ММ-дд'Т'ЧЧ: мм: сс" - это формат даты чтения

выходные данные: вс 14 апреля 16:11:48 EEST 2013

Примечания: ЧЧ против чч - ЧЧ относится к 24-часовому формату времени - чч относится к 12-часовому формату

3 голосов
/ 17 апреля 2017

Вот примеры использования нового Java 8 Time API для форматирования legacy java.util.Date:

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS Z")
        .withZone(ZoneOffset.UTC);
    String utcFormatted = formatter.format(date.toInstant()); 

    ZonedDateTime utcDatetime = date.toInstant().atZone(ZoneOffset.UTC);
    String utcFormatted2 = utcDatetime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS Z"));
    // gives the same as above

    ZonedDateTime localDatetime = date.toInstant().atZone(ZoneId.systemDefault());
    String localFormatted = localDatetime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);
    // 2011-12-03T10:15:30+01:00[Europe/Paris]

    String nowFormatted = LocalDateTime.now().toString(); // 2007-12-03T10:15:30.123

Приятно, что DateTimeFormatter может эффективно кэшироваться, так как он потокобезопасен (в отличие от SimpleDateFormat).

Список предопределенных форматов и ссылка на обозначение шаблона .

Кредиты:

Как анализировать / форматировать даты с LocalDateTime? (Java 8)

Java8 java.util.Date преобразование в java.time.ZonedDateTime

Форматирование мгновенного до строки

В чем разница между java 8 ZonedDateTime и OffsetDateTime?

2 голосов
/ 06 ноября 2017

Попробуйте это,

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class Date
{
    public static void main(String[] args) 
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String strDate = "2013-05-14 17:07:21";
        try
        {
           java.util.Date dt = sdf.parse(strDate);         
           System.out.println(sdf.format(dt));
        }
        catch (ParseException pe)
        {
            pe.printStackTrace();
        }
    }
}

Выход:

2013-05-14 17:07:21

Подробнее о форматировании даты и времени в Java см. Ссылки ниже

Справочный центр Oracle

Пример даты и времени в Java

1 голос
/ 23 июля 2018
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String date = "2010-05-30 22:15:52";
    java.util.Date formatedDate = sdf.parse(date); // returns a String when it is parsed
    System.out.println(sdf.format(formatedDate)); // the use of format function returns a String
1 голос
/ 26 марта 2015
public static void main(String[] args) 
{
    Date d = new Date();
    SimpleDateFormat form = new SimpleDateFormat("dd-mm-yyyy hh:mm:ss");
    System.out.println(form.format(d));
    String str = form.format(d); // or if you want to save it in String str
    System.out.println(str); // and print after that
}
1 голос
/ 26 сентября 2016

Давайте попробуем это

public static void main(String args[]) {

    Calendar cal = GregorianCalendar.getInstance();
    Date today = cal.getTime();
    DateFormat df7 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    try {           
        String str7 = df7.format(today);
        System.out.println("String in yyyy-MM-dd format is: " + str7);          
    } catch (Exception ex) {
      ex.printStackTrace();
    }
}

Или служебную функцию

public String convertDateToString(Date date, String format) {
    String dateStr = null;
    DateFormat df = new SimpleDateFormat(format);

    try {
        dateStr = df.format(date);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return dateStr;
}

Из Преобразование даты в строку в Java

0 голосов
/ 23 мая 2019

Опция OneLine

Этот параметр позволяет легко в одну строку записать фактическую дату.

Пожалуйста, обратите внимание, что это использует Calendar.class и SimpleDateFormat, а затем это не логично использовать его под Java8.

yourstringdate =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
...