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

Java 以日期格式而不是字符串获取格式化日期,java,date,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())); 我这样做的原因是因为现有方法接受日期格式的参数,所以我需要将上面提到的日期对象发送给它 请指出错误或建议其他替代方

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

SimpleDateFormat sdf = new SimpleDateFormat("mm/dd/yyyy hh:mm");
Date date = sdf.parse(sdf.format(Calendar.getInstance().getTime()));
我这样做的原因是因为现有方法接受日期格式的参数,所以我需要将上面提到的日期对象发送给它

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

日期对象没有格式。Date类是单个long的包装,long是自历元以来的毫秒数。不能格式化日期,只能格式化字符串。在内部传递日期/日历,并在需要显示、记录或以其他方式返回给用户时对其进行格式化。

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

检查下面的URL以获取有效的格式


除了mm和mm错误之外,您的格式化程序工作得很好。从日期获取格式化字符串,然后通过解析格式化字符串从日期创建副本:

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

我不是因为你在他的代码中发现了一个bug而投反对票,但我认为这根本不能解决他的问题,我只是回答了他的问题。你说得对,日期或日历对象本身没有任何标准格式。我不明白。您正在格式化日历中的日期,然后将其解析回日期。为什么不使用Date Date=Calendar.getInstance.getTime?它仍然无法解决问题..:那么请详细说明这个问题,因为我不知道你的问题到底是什么。例如,现有的方法是什么?日期何时/如何以错误的格式打印?要稍微扩展一下……在本例中,您不能格式化日期时间对象java.util.date,但可以生成该日期时间信息的字符串表示形式。通过使用格式化程序来实现。对于j.u.Date&Calendar,这意味着SimpleDateFormat类。但是java.util.Date和.Calendar是出了名的麻烦;避开它们。取而代之的是使用Java8中的新java.time包。对于Joda Time,使用通过DateTimeFormat工厂获得的对象。