我有字符串格式的日期,如Wed Jun 07 00:00:00 IST 2023,但我希望它在dd-mm-yyyy格式的日期类型只...我可以转换它,但它是在字符串类型转换,我想它应该转换成只有日期类型的dd-mm-yyyy格式。
我试过下面的代码,但它是字符串格式转换为星期三六07 00:00:00 IST 2023,但我希望输出应该是这样的东西
仅日期= 07-06-2023。
请帮帮我
我的代码片段是:
public static void main(String[] args) throws ParseException {
String dateOfBirht= "07-06-2023";
Date date = new SimpleDateFormat("dd-MM-yyyy").parse(dateOfBirht);
System.out.println(date);
如果你看到上面代码片段的输出是打印为Wed Jun 07 00:00:00 IST 2023
,这不是我想要的答案。应该是07-06-2023
,仅限日期格式****既不是String也不是LocaleDate
4条答案
按热度按时间wz8daaqr1#
在Java中,Java.util.Date类没有与之关联的特定格式。打印Date对象使用toString()方法提供的默认格式。
要以所需格式(dd-mm-yyyy)显示日期而不显示任何时间或时区信息,可以使用java.text.SimpleDateFormat类将日期格式化为字符串,然后将其解析回Date对象。
请注意,java.util.Date类已经过时,建议使用Java8中引入的较新的java.timeAPI进行日期和时间操作。但是,如果您特别需要使用Date类,则上述方法将很好地工作。
sxissh062#
避免使用旧的日期类,因此:
任何日期类型,包括
java.util.Date
,本质上都是一个内部数字。像int
一样,它们没有格式。hlswsv353#
从Java 8+开始,您确实应该利用
java.time
类来实现任何日期功能。但是要回答你的问题,你需要使用
java.text.SimpleDateFormat#format
将旧的Date转换为你想要的任何格式:i7uaboj44#
我不太明白你的问题。你已经有了 * Date * 值,在这里。
Wed Jun 07 00:00:00 IST 2023
,这不是我想要的答案。应该是07-06-2023
..."*我相信你是在暗示 * Date * 对象不应该返回时间,因为你只解析了日期值。
事实并非如此。同样,它仍然是一个有效的日期;归零的时间字段在日期字段中不应起任何作用。
但是,您可以使用基本的 * String * 格式。
格式说明符可以在 * Formatter * 类JavaDoc中找到。
输出量