获取格式化日期的日期格式而不是字符串

时间:2013-09-24 11:55:21

标签: java date

我正在运行下面编写的程序,但不是以mm / dd / yyyy hh:mm格式打印,而是以正常日期格式(即日期和时间)打印

SimpleDateFormat sdf = new SimpleDateFormat("mm/dd/yyyy hh:mm");
Date date = sdf.parse(sdf.format(Calendar.getInstance().getTime()));

我这样做的原因是因为现有方法接受Date格式的参数,所以我需要将上面提到的日期对象发送给它。

请指出错误或建议其他替代方案。 感谢

3 个答案:

答案 0 :(得分:7)

日期对象没有格式。 Date类是一个长整数的包装器,是自纪元以来的毫秒数。您不能“格式化”日期,只能使用字符串。在内部传递日期/日历,并在需要显示,记录或以其他方式将其返回给用户时格式化。

答案 1 :(得分:1)

将格式更改为MM / dd / yyyy。月份由大写字母M表示。

检查以下网址的有效格式

http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

答案 2 :(得分:1)

你的格式化程序工作得很好(除了mm与MM的bug)。您从日期获得格式化的字符串,然后通过解析格式化的字符串从您的日期创建一个副本:

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm");
Date now = Calendar.getInstance().getTime();
String formattedNow = sdf.format(now); // == "09/24/2013 01:59"
Date now2 = sdf.parse(formattedNow); // == now