Преобразование java.util.Date в строку

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

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

Комментарии к вопросу (4)
Решение

Преобразование даты в строку с помощью метода DateFormat#format:

String pattern = "MM/dd/yyyy HH:mm:ss";

// Create an instance of SimpleDateFormat used for formatting 
// the string representation of date according to the chosen pattern
DateFormat df = new SimpleDateFormat(pattern);

// Get the today date using Calendar object.
Date today = Calendar.getInstance().getTime();        
// Using DateFormat format method we can create a string 
// representation of a date with the defined format.
String todayAsString = df.format(today);

// Print the result!
System.out.println("Today is: " + todayAsString);

От http://www.kodejava.org/examples/86.html

Комментарии (8)
Format formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = formatter.format(date);
Комментарии (1)

Коммонс-Ланг DateFormatUtils полно вкусностей (если у вас есть Коммонс-Ланг в вашем classpath)

//Formats a date/time into a specific pattern
 DateFormatUtils.format(yourDate, "yyyy-MM-dd HH:mm:SS");
Комментарии (0)

многабукаф.

myUtilDate.toInstant()  // Convert `java.util.Date` to `Instant`.
          .atOffset( ZoneOffset.UTC )  // Transform `Instant` to `OffsetDateTime`.
          .format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )  // Generate a String.
          .replace( "T" , " " )  // Put a SPACE in the middle.

2014-11-14 14:05:09

и Java.время

Современный способ-это с Java.классы время, что сейчас вытеснить хлопотно старый дата-время устаревших классов.

Сначала преобразуйте ваш Ява.утиль.Даты к МиГ. О МиГ класс представляет момент на временной шкале в мирового с разрешением НС (до девяти (9) цифр десятичной дробью).

Преобразования в/из Java.время выполняются новые методы, добавленные в старые классы.

Instant instant = myUtilDate.toInstant();

Как ваш Ява.утиль.Дата и Ява.время.Мгновение в [мирового][1]. Если вы хотите увидеть дату и время, как мирового, так и будет. Вызовметод toString`, чтобы генерировать строку в стандарте ИСО 8601 формат.

String output = instant.toString();  

2014-11-14T14:05:09Z

Для других форматов, вы должны преобразовать мгновение в более гибкой OffsetDateTime.

OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC );

для рассасывания.метод toString(): 2014-11-14T14:05:09+00:00

Чтобы сделать строку в нужный формат, указать datetimeformatter с. Можно указать пользовательский формат. Но я хотел бы использовать одну из стандартных средств форматирования (ISO_LOCAL_DATE_TIME), и заменить " Т " на его выходе с места.

String output = odt.format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )
                   .replace( "T" , " " );

2014-11-14 14:05:09

Кстати я не рекомендую такой формат, в котором вы нарочно потерять смещение-из-за мирового или сведений о часовом поясе. Создает ясность в значение даты-времени, что строки значение.

Также остерегайтесь потери данных, как дробная второй игнорируется (эффективно усе) в представлении строки в значение даты и времени.

Чтобы увидеть тот же миг сквозь призму какого-то конкретного региона время, применить ZoneId получить ZonedDateTime.

ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );

ЗДТ.метод toString(): 2014-11-14T14:05:09-05:00[Америка/Монреале]

Чтобы создать форматированную строку, сделать то же самое, что и выше, но заменить имя с ЗДТ.

String output = zdt.format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )
                   .replace( "T" , " " );

2014-11-14 14:05:09

Если выполнение этого кода очень большое количество раз, вы, возможно, захотите, чтобы быть немного более эффективным и избежать разговора на эту строку: заменить. Снижается, что также делает ваш код короче. При желании, укажите свой собственный шаблон форматирования в объекте свой собственныйdatetimeformatter с`. Кэш этот экземпляр в качестве постоянного или члена для повторного использования.

DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuu-MM-dd HH:mm:ss" );  // Data-loss: Dropping any fractional second.

Применять это средство форматирования, передав экземпляр.

String output = zdt.format( f );

О Java.время

[На языке Java.время] рамки(http://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html) построен в Java 8 и выше. Эти классы вытеснить хлопотно старый дата-время классов, таких как Ява.утиль.Даты, .Календарь, & java.text.SimpleDateFormat.

В Joda времени проекта, теперь в режиме техническое обслуживание, советует миграции на Java.время.

Чтобы узнать больше, см. Оракул учебник. Поиск переполнения стека для многих примеров и объяснений.

Большая часть Java.время функциональность портированы с Java 6 & 7 в ThreeTen-портировать и в дальнейшем адаптировать к Андроид в ThreeTenABP (см. Как использовать...).

В ThreeTen-лишний проект расширяется Java.время дополнительных занятий. Этот проект является полигоном для возможных будущих дополнений к Java.время.

Комментарии (1)

Альтенативе один-вкладыши в простой Ява:


String.format("The date: %tY-%tm-%td", date, date, date);

String.format("The date: %1$tY-%1$tm-%1$td", date);

String.format("Time with tz: %tY-%
Комментарии (0)

Почему Дон'т вы используете Джода (орг.Джода.время.Датавремя)? Это's в основном один-лайнер.

Date currentDate = GregorianCalendar.getInstance().getTime();
String output = new DateTime( currentDate ).toString("yyyy-MM-dd HH:mm:ss");

// output: 2014-11-14 14:05:09
Комментарии (1)

Похоже, что вы ищете SimpleDateFormat.

Формат: yyyy-MM-dd kk:mm:ss

Комментарии (6)

В один выстрел ;)

Чтобы получить дату

String date = new SimpleDateFormat("yyyy-MM-dd",   Locale.getDefault()).format(new Date());

В время

String time = new SimpleDateFormat("hh:mm", Locale.getDefault()).format(new Date());

Для получения даты и времени

String dateTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.getDefaut()).format(new Date());

Удачи в кодировании :)

Комментарии (1)

Если вам нужен только время от даты, вы можете просто использовать функцию строки.

Date test = new Date();
String dayString = test.toString();
String timeString = dayString.substring( 11 , 19 );

Это автоматически сократит время часть строки и сохранить его внутри timeString.

Комментарии (1)
public static String formateDate(String dateString) {
    Date date;
    String formattedDate = "";
    try {
        date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss",Locale.getDefault()).parse(dateString);
        formattedDate = new SimpleDateFormat("dd/MM/yyyy",Locale.getDefault()).format(date);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return formattedDate;
}
Комментарии (0)

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

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

куда "гггг-ММ-ДД'Т'чч:мм:СС" это формат даты значение

выходной: Вс апр 14 16:11:48 еесть 2013

Примечания: ДХ против ДХ

  • Чч-24-часовой формат времени
  • чч-время в формате 12ч
Комментарии (1)

Вот несколько примеров использования новых версия Java 8 API времени в формате наследие `Ява.утиль.Дата:

    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).

Список предопределенных fomatters и обозначений модели ссылки.

Кредиты:

https://stackoverflow.com/questions/22463062/how-to-parse-format-dates-with-localdatetime-java-8

https://stackoverflow.com/questions/25376242/java8-java-util-date-conversion-to-java-time-zoneddatetime

https://stackoverflow.com/questions/25229124/format-instant-to-string

https://stackoverflow.com/questions/30234594/whats-the-difference-between-java-8-zoneddatetime-and-offsetdatetime

Комментарии (0)

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

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

Комментарии (0)

Date date = new Date();
String strDate = String.format("%tY-%
Комментарии (0)
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
}
Комментарии (0)
    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
Комментарии (0)

Позвольте'ы попробовать это

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)

Один вариант линии

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

и GT; Пожалуйста, обратите внимание, что это использует Calendar.class А `класса simpledateformat, а потом он's не

логично использовать его под Java8.

yourstringdate =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
Комментарии (6)