问题:
如何将日期格式设置为“2012-” 11-17T00:00:00.000-05:00”在 Java 中转换为“mm/yyyy”?
遇到错误:
尝试使用 DateFormat 时。直接对日期的字符串表示形式进行格式化,会抛出异常:
java.lang.IllegalArgumentException: Cannot format given Object as a Date
解决方案:
关键是要认识到 DateFormat.format 专门用于日期值,而不是日期的字符串表示形式。因此,应该使用以下两步方法:
将输入字符串解析为 Date 对象:
<code class="java">DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.US); Date date = inputFormat.parse(inputText);</code>
将 Date 对象格式化为所需的输出格式:
<code class="java">DateFormat outputFormat = new SimpleDateFormat("MM/yyyy", Locale.US); String outputText = outputFormat.format(date);</code>
用法示例:
<code class="java">String inputText = "2012-11-17T00:00:00.000-05:00"; String outputText = new SimpleDateFormat("MM/yyyy", Locale.US).format(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.US).parse(inputText));</code>
通过执行以下步骤,可以将日期字符串转换为所需的“mm/yyyy”格式,而不会遇到 Cannot format给定对象作为日期的异常。
以上是如何在Java中将日期字符串'2012-11-17T00:00:00.000-05:00”转换为'mm/yyyy”格式?的详细内容。更多信息请关注PHP中文网其他相关文章!