2015-05-26 61 views
4

我有以下疑问如何在Java中创建格式日期。如何正确创建具有特定格式的日期?

在Java应用程序,我必须创建一个日期(值必须是当前日期)这样的格式:2015年5月26日YYYY-MM-DD

所以我知道我可以获取当前的日期只是建立一个新的java.util.Date对象,这种方式:

Date dataDocumento = new Date(); 

,但我怎么可以指定我的日期格式?

TNX

+1

请参阅以下内容:https://docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html –

+1

Date没有格式的概念,它只是自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); 

要格式化的YYYY-MM-DD格式的当前日期,你可以尝试这样的

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"); 

注意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的; import 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()); 

此外,您可以使用任何的formet给定的,如果须─

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