Как конвертировать текущую дату в строку в Java? - PullRequest
104 голосов
/ 31 мая 2010

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

Ответы [ 9 ]

202 голосов
/ 21 февраля 2013
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
59 голосов
/ 31 мая 2010
// 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());
}

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

25 голосов
/ 31 мая 2010
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
17 голосов
/ 31 мая 2010

Использовать реализацию DateFormat; например SimpleDateFormat.

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
9 голосов
/ 11 июля 2013

Быстрее:

String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
7 голосов
/ 19 апреля 2016

ТЛ; др

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, & SimpleDateFormat.

Проект Joda-Time , теперь в режиме обслуживания , рекомендует перейти на классы java.time .

Чтобы узнать больше, см. Oracle Tutorial . И поиск переполнения стека для многих примеров и объяснений. Спецификация JSR 310 .

Вы можете обмениваться java.time объектами напрямую с вашей базой данных. Используйте драйвер JDBC , совместимый с JDBC 4.2 или более поздней версии. Нет необходимости в строках, нет необходимости в java.sql.* классах.

Где получить классы java.time?

Проект ThreeTen-Extra расширяет java.time дополнительными классами. Этот проект является полигоном для возможных будущих дополнений к java.time. Здесь вы можете найти некоторые полезные классы, такие как Interval, YearWeek, YearQuarter и more .

0 голосов
/ 18 августа 2017

Для времени как ГГГГ-ММ-дд

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

А библиотека DateTime:

import org.joda.time.DateTime;

0 голосов
/ 13 июня 2017
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;
        }

    }
0 голосов
/ 06 мая 2017

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

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

new Date() // deprecated

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

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

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

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

Это больше синонимично реальной жизни

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

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

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

или очень очевидный

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...