Как преобразовать текущую дату в строку в java?

Как преобразовать текущую дату в строку в Java?

Ответ 1

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

Ответ 2

// GET DATE & TIME IN ANY FORMAT
import java.util.Calendar;
import java.text.SimpleDateFormat;
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";

public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}

Взято из здесь

Ответ 3

// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();

Ответ 4

Используйте DateFormat; например SimpleDateFormat.

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());

Ответ 5

Быстрее:

String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));

Ответ 6

TL;DR

LocalDate.now()
         .toString() 

2017-01-23

Лучше явно указать желаемый/ожидаемый часовой пояс.

LocalDate.now( ZoneId.of( "America/Montreal" ) )
         .toString() 

java.time

Современный подход к Java 8 и более поздним версиям состоит из java.time framework.

Укажите часовой пояс, так как дата изменяется во всем мире в любой момент.

ZoneId zoneId = ZoneId.of( "America/Montreal" ) ;  // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;

2017-01-23

По умолчанию вы получаете строку в стандартном формате ISO 8601.

Для других форматов используйте класс java.time.format.DateTimeFormatter.

О java.time

Структура 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. Здесь вы можете найти полезные классы, такие как Interval, YearWeek, YearQuarter и т.д.

Ответ 7

Время в формате ГГГГ-ММ-dd

String time = new DateTime( yourData ).toString("yyyy-MM-dd");

И Библиотека DateTime:

import org.joda.time.DateTime;

Ответ 8

Большинство ответов являются/действительными. Новая модификация JAVA API для обработки даты помогла уменьшить некоторую более раннюю двусмысленность в обработке дат java.

Вы получите устаревшее сообщение для аналогичных вызовов.

new Date() // deprecated

Вышеупомянутый вызов заставил разработчика предположить, что новый объект Date предоставит объект Date с текущей меткой времени. Это поведение несовместимо с другими классами Java API.

Новый способ сделать это - использовать экземпляр Календарь.

new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()

Здесь также соглашение об именах не является совершенным, но это очень организовано. Для такого человека, как я, у которого есть трудное время, подталкивая вещи, но никогда не забудет что-то, если оно звучит/кажется логичным, это хороший подход.

Это больше похоже на реальную жизнь

  • Мы получаем объект Calendar, и мы ищем время в нем.   (вам должно быть интересно, что никакое тело не получает время от Календаря, поэтому я сказал, что это не идеально. Но это другая тема в целом)
  • Затем нам нужна дата в простом текстовом формате, поэтому мы используем класс утилиты SimpleDateFormat, который помогает нам форматировать дату с шага 1. Я использовал yyyy, MM, dd в качестве параметров в формате. Поддерживаемые параметры формата даты

Еще один способ сделать это - использовать API времени Joda

new DateTime().toString("yyyy-MM-dd")

или много очевидного

new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")

оба будут возвращать тот же результат.

Ответ 9

public static Date getDateByString(String dateTime) {
        if(dateTime==null || dateTime.isEmpty()) {
            return null;
        }
        else{
            String modified = dateTime + ".000+0000";
            DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
            Date dateObj = new Date();
            Date dateObj1 = new Date();
            try {
                if (dateTime != null) {
                    dateObj = formatter.parse(modified);
                }

            } catch (ParseException e) {
                e.printStackTrace();
            }

            return dateObj;
        }

    }