【问题标题】:How to correctly create a date with a specific format? [duplicate]如何正确创建具有特定格式的日期? [复制]
【发布时间】:2015-08-07 21:56:06
【问题描述】:

我对如何在 Java 中创建格式日期有以下疑问。

在 Java 应用程序中,我必须创建一个日期(值必须是当前日期),格式如下:2015-05-26 (yyyy-mm-dd)

所以我知道我可以获取当前日期,只需构建一个新的java.util.Date 对象,这样:

Date dataDocumento = new Date();

但是如何指定我的日期格式?

Tnx

【问题讨论】:

  • Date 没有格式的概念,它只是一个 Unix 纪元以来毫秒数的容器。当您想以特定格式显示日期值时,请使用 DateFormat
  • 下面有8个过时的答案。 2017 年的正确和当前答案是LocalDate.now(ZoneId.systemDefault()).toString()(在 2015 年提出问题时,它甚至是一个有效的答案)。您可以根据需要提供不同的时区。

标签: java date date-format


【解决方案1】:

试试这个代码:

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】:

    你必须使用SimpleDateFormat

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

    注意 MM 代表月份,而不是 mm

    然后您格式化您的日期并将其解析为Date 对象,如下所示:

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

    使用format(new Date()),您可以格式化new Date()

    【讨论】:

    • 你说“你像这样格式化你的日期”,然后你展示了如何解析一个日期,这与格式化相反。
    • 是的@Jesper,你是对的,我正在编辑它。
    【解决方案3】:

    您可以为此使用简单的日期格式类:

    import java.text.SimpleDateFormat;
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
         Date dataDocumento = new Date();
         sdf.format(dataDocumento);
    

    【讨论】:

      【解决方案4】:

      使用以下-

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

      MoreOver 如果需要,您可以使用任何给定的格式-

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

      【讨论】:

        【解决方案5】:

        代码

        导入 java.text.SimpleDateFormat; 导入 java.util.Date;

        /**
         *
         * 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
        

        【讨论】:

          【解决方案6】:

          尝试以下操作:

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

          【讨论】:

          • 对我来说最好的解决方案,内联格式化日期! ++
          【解决方案7】:

          试试这样:

          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

          【讨论】:

          • 好的,但问题是我必须创建一个新的当前日期,不要像你那样使用 2015-05-26
          • @AndreaNobili:- 更新了我的答案!请立即检查!
          • 你创建了一个格式化的字符串而不是一个日期对象
          【解决方案8】:

          java.util.Date 对象本身没有格式。它们只是时间戳值,就像int 只是一个数字,没有任何固有格式。因此,不存在“Date 格式为 yyyy-MM-dd 的对象”。

          格式在您将Date 转换为String 时确定。您可以使用SimpleDateFormatDate 转换为特定格式的String。例如:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2022-12-15
            • 1970-01-01
            • 1970-01-01
            • 2015-08-11
            • 2015-04-06
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多