0

我正在尝试使用简单的日期格式来格式化当前时间:

    SimpleDateFormat sdf =  new SimpleDateFormat("yyyy/MM/dd"); 
    Date now = new Date(System.currentTimeMillis());
    try {
        java.util.Date formattedDate = sdf.parse(now.toString());
        System.out.println(formattedDate.toString());
    } catch (ParseException e) {
        e.printStackTrace();
    }

但是我得到的输出是:

Fri Oct 18 00:00:00 CDT 2013

我正在努力实现:

2013/08/18

我究竟做错了什么?

4

4 回答 4

2

您必须使用SimpleDateFormat#format(Date date)方法,该方法返回以所需方式格式化的日期。请注意,此方法继承自DateFormat.

SimpleDateFormat sdf =  new SimpleDateFormat("yyyy/MM/dd"); 
Date now = new Date(System.currentTimeMillis());
String formattedDate = sdf.format(now);
System.out.println(formattedDate);
于 2013-10-18T13:30:39.500 回答
1

你正在解析你的Date,但没有用你的SimpleDateFormat. Date#toString()方法有自己的输出格式。改用你的SimpleDateFormat

System.out.println(sdf.format(formattedDate));
于 2013-10-18T13:30:23.453 回答
1
  1. 你不需要打电话parse
  2. 你不需要 try/catch

试试这个更简单的代码:

DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); 
String formattedDate = sdf.format(new Date());
System.out.println(formattedDate);
于 2013-10-18T13:33:15.053 回答
1

你可以尝试使用这个

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

    public class DateFormatTest {

      public static void main(String[] args) {
      Date now = new Date();

      // Use Date.toString()
      System.out.println(now);

      // Use DateFormat
      DateFormat formatter = DateFormat.getInstance(); // Date and time
      String dateStr = formatter.format(now);
      System.out.println(dateStr);
      formatter = DateFormat.getTimeInstance();        // time only
      System.out.println(formatter.format(now));

      // Use locale
      formatter = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL,       Locale.FRANCE);
      System.out.println(formatter.format(now));

     // Use SimpleDateFormat
     SimpleDateFormat simpleFormatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
     System.out.println(simpleFormatter.format(now));
  }
} 
于 2013-10-18T13:34:58.437 回答