Я хочу преобразовать объект java.util.Date в String в Java.
Формат 2010-05-30 22:15:52
Я хочу преобразовать объект java.util.Date в String в Java.
Формат 2010-05-30 22:15:52
Преобразуйте дату в строку, используя метод 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);
Format formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = formatter.format(date);
Commons-lang DateFormatUtils полон плюсов (если у вас есть commons-lang в вашем пути к классам)
//Formats a date/time into a specific pattern
 DateFormatUtils.format(yourDate, "yyyy-MM-dd HH:mm:SS");
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.time, которые теперь вытесняют неприятные старые устаревшие классы времени.
 Сначала конвертируйте свой java.util.Date в Instant.  Instant класс представляет момент на временной шкале в UTC с разрешением наносекунд (до девяти (9) цифр десятичной дроби).
Конверсии в/из java.time выполняются с помощью новых методов, добавленных в старые классы.
Instant instant = myUtilDate.toInstant();
 Оба java.util.Date и java.time.Instant находятся в UTC. Если вы хотите видеть дату и время как UTC, пусть будет так. Вызовите toString для генерации строки в стандартном формате ISO 8601.
String output = instant.toString();  
2014-11-14T14: 05: 09Z
 Для других форматов вам необходимо преобразовать Instant в более гибкое  OffsetDateTime.
OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC );
odt.toString(): 2014-11-14T14: 05: 09 + 00: 00
 Чтобы получить строку в нужном формате, укажите  DateTimeFormatter. Вы можете указать собственный формат. Но я бы использовал один из предопределенных форматировщиков ( ISO_LOCAL_DATE_TIME) и заменил T на своем выходе пространством.
String output = odt.format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )
                   .replace( "T" , " " );
2014-11-14 14:05:09
Кстати, я не рекомендую этот формат, где вы намеренно теряете информацию о смете-от-UTC или часовом поясе. Создает двусмысленность относительно значения значения даты и времени строки.
Также будьте осторожны с потерей данных, так как любая дробная секунда игнорируется (эффективно усечена) в представлении строк значения даты и времени.
 Чтобы увидеть тот же самый момент через объектив некоторых конкретных областей настенных часов, примените ZoneId чтобы получить ZonedDateTime.
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );
zdt.toString(): 2014-11-14T14: 05: 09-05: 00 [Америка/Монреаль]
 Чтобы сгенерировать форматированную строку, сделайте то же самое, что и выше, но замените odt на zdt.
String output = zdt.format( DateTimeFormatter.ISO_LOCAL_DATE_TIME )
                   .replace( "T" , " " );
2014-11-14 14:05:09
 Если вы выполняете этот код очень много раз, вы можете быть немного более эффективным и избегать вызова String::replace. Удаление этого вызова также делает ваш код короче. Если это необходимо, укажите свой собственный шаблон форматирования в собственном объекте DateTimeFormatter. Кэшируйте этот экземпляр как константу или член для повторного использования.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuu-MM-dd HH:mm:ss" );  // Data-loss: Dropping any fractional second.
Примените этот форматтер, передав экземпляр.
String output = zdt.format( f );
 Рамка java.time встроена в Java 8 и более поздние версии. Эти классы вытесняют неприятные старые классы времени, такие как  java.util.Date,  .Calendar, &  java.text.SimpleDateFormat.
Проект Joda-Time, теперь в режиме обслуживания, советует перейти на java.time.
Чтобы узнать больше, ознакомьтесь с учебным пособием Oracle. И поиск Qaru для многих примеров и объяснений.
Большая часть функциональных возможностей java.time была перенесена на Java 6 и 7 в ThreeTen-Backport и далее адаптирована для Android в ThreeTenABP (см. Как использовать...).
Проект ThreeTen-Extra расширяет java.time с дополнительными классами. Этот проект является доказательством возможных будущих дополнений к java.time.
Отличительные однострочные линии в простой Java:
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-%<tm-%<td %<tH:%<tM:%<tS.%<tL%<tz", date);
String.format("The date and time in ISO format: %tF %<tT", date);
 Это использует Formatter и относительное индексирование вместо SimpleDateFormat которое не является потокобезопасным, кстати.
Чуть более повторяющийся, но требует только одного утверждения. В некоторых случаях это может быть удобно.
Почему вы не используете Joda (org.joda.time.DateTime)? Это в основном однострочный.
Date currentDate = GregorianCalendar.getInstance().getTime();
String output = new DateTime( currentDate ).toString("yyyy-MM-dd HH:mm:ss");
// output: 2014-11-14 14:05:09
Похоже, вы ищете SimpleDateFormat.
Формат: yyyy-MM-dd kk: mm: ss
В одиночном кадре;)
Получить дату
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());
Счастливое кодирование :)
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;
}
Самый простой способ использовать его:
currentISODate = new Date().parse("yyyy-MM-dd'T'HH:mm:ss", "2013-04-14T16:11:48.000");
где "yyyy-MM-dd'T'HH: mm: ss" - формат даты показания
: Sun Apr 14 16:11:48 EEST 2013
Примечания: HH vs hh - HH относится к 24-часовому формату - hh относится к 12-часовому формату времени
Если вам нужно только время с даты, вы можете просто использовать функцию String.
Date test = new Date();
String dayString = test.toString();
String timeString = dayString.substring( 11 , 19 );
Это автоматически сократит временную часть строки и сохранит ее внутри timeString.
Ниже приведены примеры использования 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).
Список предопределенных ссылок на изображение и ссылку на изображение.
Credits:
Как анализировать/форматировать даты с помощью LocalDateTime? (Java 8)
Java8 java.util.Date конвертирование в java.time.ZonedDateTime
Попробуй это,
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 см. Ссылки ниже.
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
}
Попробуйте это
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;
}
    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
Date date = new Date();
String strDate = String.format("%tY-%<tm-%<td %<tH:%<tM:%<tS", date);
Вариант с одной линией
Эта опция позволяет легко написать актуальную дату в одну строку.
Пожалуйста, обратите внимание, что это использует
Calendar.classиSimpleDateFormat, а затем это не логично использовать его под Java8.
yourstringdate =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());