Java 使用简单日期格式格式化时日期无效
我有一个日期字符串Java 使用简单日期格式格式化时日期无效,java,date,datetime,simpledateformat,sqldatetime,Java,Date,Datetime,Simpledateformat,Sqldatetime,我有一个日期字符串Mon Feb 8 00:00:00 UTC+0530 1954。我想将其转换为DD/MM/YYYY格式。输出总是08/38/1954或09/39/1954 我使用了以下代码 SimpleDateFormat format = new SimpleDateFormat("MM/DD/YYYY", Locale.US); System.out.println(format.format(new Date(dateStr))); DD中的SimpleDateFormat表示“年中
Mon Feb 8 00:00:00 UTC+0530 1954
。我想将其转换为DD/MM/YYYY
格式。输出总是08/38/1954或09/39/1954
我使用了以下代码
SimpleDateFormat format = new SimpleDateFormat("MM/DD/YYYY", Locale.US);
System.out.println(format.format(new Date(dateStr)));
DD
中的SimpleDateFormat
表示“年中的一天”,您需要“月中的一天”,即DD
还要注意的是,YYYY
表示“周-年”,根据日历的不同,周-年可追溯到“年”,表示为yyy
。我想,无论如何,您都需要yyyy
。您需要使用parse()方法从字符串日期转换为定义的SimpleDataFormat
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy", Locale.US);
Date date = format.parse(dateStr);
System.out.println(format.format(date));
D
在SimpleDateformat
中代表年中的天
其中asD
代表月中的天因此将DD
替换为DD
类似地,将YYYY
替换为yyy
尝试以下操作:
SimpleDateFormat frmt = new SimpleDateFormat("E MMM d HH:mm:ss zZ yyyy", Locale.US);
Date dateStr = frmt.parse("Mon Feb 8 00:00:00 UTC+0530 1954");
这将以给定格式输出当前日期。他特别想要输出给定的日期,这需要首先解析。他有一个非常特定的输入字符串,您的将尝试将其与格式模式匹配。通过使用上面的代码,我得到了解析异常。但是当我创建新的日期对象和格式时,我得到了正确的输出。为什么会出现语法分析器异常,如代码示例中的“月初”?或者是第一天,就像问题主体的第二句话一样?我的答案可能是重复的,这真的是不必要的,但我喜欢用一些正则表达式来解决这类问题。这就像是重新设计车轮。