2015-05-26 4 views
4

У меня есть следующие сомнения относительно того, как создать дату форматирования в Java.Как правильно создать дату в определенном формате?

В приложении Java я должен создать дату (значение должно быть текущая дата), отформатированный таким образом: 2015-05-26 (гггг-мм-дд)

Так Я знаю, что я могу получить текущую дату просто построить новый java.util.Date объект, таким образом:

Date dataDocumento = new Date(); 

, но как я могу указать мой формат даты?

Tnx

+1

Смотрите следующее: https://docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html –

+1

Дата не имеет понятия формата, это просто контейнер с количеством миллисекунд с эпохи Unix. Используйте DateFormat, когда вы хотите отобразить значение даты в определенном формате. – MadProgrammer

+0

. Ниже представлены 8 устаревших ответов. Правильный и текущий ответ в 2017 году - «LocalDate.now» (ZoneId.systemDefault()). ToString() '(это был даже действительный ответ, когда вопрос был задан в 2015 году). Вы можете указать другой часовой пояс в зависимости от ваших потребностей. –

ответ

15

Попробуйте так:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
Date c= sdf.parse("2015-05-26"); 
String date=sdf.format(c); 
System.out.println(date); 

Для форматирования текущей даты в формате ГГГГ-ММ-ДД, вы можете попробовать, как этот

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

Пожалуйста, обратитесь SimpleDateFormat

+0

ОК, но проблема в том, что мне нужно создать новую текущую дату и не использовать 2015-05-26, как вы делаете – AndreaNobili

+0

@AndreaNobili: - Обновлен мой ответ! Пожалуйста, проверьте прямо сейчас! –

4

java.util.Date Объекты не имеют формата самостоятельно. Это всего лишь отметки времени, точно так же, как int - это просто номер, без какого-либо встроенного формата. Таким образом, нет такой вещи, как «объект Date с форматом yyyy-MM-dd».

Формат определяется на момент вашего преобразования Date на номер String. Вы можете использовать SimpleDateFormat для преобразования Date в String в определенном формате. Например:

Date date = new Date(); 

DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); 
String text = fmt.format(date); 

System.out.println(text); 
4

Вы должны использовать SimpleDateFormat:

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); 

Примечание That MM клетей за месяц и не mm.

И форматировать дату и разобрать его как Date объектом:

Date dt = sf.parse(sf.format(new Date())); 

Использование format(new Date()) вы можете форматировать new Date().

+0

Вы говорите «вы отформатируете свою дату как это», а затем вы показываете, как * разобрать * дату, которая является противоположностью форматирования. – Jesper

+0

Да @ Jesper ты прав, я редактирую его. –

2

Попробуйте следующее:

String currentDate = new SimpleDateFormat("dd.MM.yyyy").format(new Date()); 
1

Код

импорт java.text.SimpleDateFormat; импорт java.util.Дата;

/** 
* 
* Java program to show how to format date in Java using SimpleDateFormat 
* Examples. Java allows to include date, time and timezone information 
* while formatting dates in Java. 
* 
* @author http://java67.blogspot.com 
*/ 
public class DateFormatExample { 

    public static void main(String args[]) { 

     // This is how to get today's date in Java 
     Date today = new Date(); 

     //If you print Date, you will get un formatted output 
     System.out.println("Today is : " + today); 

     //formatting date in Java using SimpleDateFormat 
     SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd-MM-yyyy"); 
     String date = DATE_FORMAT.format(today); 
     System.out.println("Today in dd-MM-yyyy format : " + date); 

     //Another Example of formatting Date in Java using SimpleDateFormat 
     DATE_FORMAT = new SimpleDateFormat("dd/MM/yy"); 
     date = DATE_FORMAT.format(today); 
     System.out.println("Today in dd/MM/yy pattern : " + date); 

     //formatting Date with time information 
     DATE_FORMAT = new SimpleDateFormat("dd-MM-yy:HH:mm:SS"); 
     date = DATE_FORMAT.format(today); 
     System.out.println("Today in dd-MM-yy:HH:mm:SS : " + date); 

     //SimpleDateFormat example - Date with timezone information 
     DATE_FORMAT = new SimpleDateFormat("dd-MM-yy:HH:mm:SS Z"); 
     date = DATE_FORMAT.format(today); 
     System.out.println("Today in dd-MM-yy:HH:mm:SSZ : " + date); 

    } 

} 

Выход

Today is : Tue May 26 16:11:27 IST 2015 

Today in dd-MM-yyyy format : 26-05-2015 

Today in dd/MM/yy pattern : 26/05/15 

Today in dd-MM-yy:HH:mm:SS : 26-05-15:16:11:316 

Today in dd-MM-yy:HH:mm:SSZ : 26-05-15:16:11:316 +0530 
2

Используйте включено следующее:

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

Более того, вы можете использовать любой из дается Формет если required-

new SimpleDateFormat("dd/MM/yyyy").format(new Date()); 
new SimpleDateFormat("dd-MM-yy:HH:mm:SS").format(new Date()); 
new SimpleDateFormat("dd-MM-yy:HH:mm:SS Z").format(new Date()); 
2

Попробуйте этот код:

import java.util.Date; 
import java.text.DateFormat; 
import java.text.SimpleDateFormat; 

public class GetCurrentDateTime { 
    public static void main(String[] args) {  
     DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); // you can change the format as you like 
     Date date = new Date(); 
     System.out.println(dateFormat.format(date)); 
    } 
} 
2

Вы можете использовать простой класс формат даты для этого:

import java.text.SimpleDateFormat; 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); 
    Date dataDocumento = new Date(); 
    sdf.format(dataDocumento); 
Смежные вопросы