Java/Groovy - 简单的日期重新格式化

Posted

技术标签:

【中文标题】Java/Groovy - 简单的日期重新格式化【英文标题】:Java/Groovy - simple date reformatting 【发布时间】:2013-01-01 05:58:57 【问题描述】:

我是 Java/Groovy 开发的新手,我想重新格式化一个简单的字符串,但是当我尝试运行以下命令时出现“无法解析的日期”错误:

import java.text.SimpleDateFormat 
import java.util.Date

String oldDate
Date date
String newDate 

oldDate = '04-DEC-2012'
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(oldDate)
newDate = new SimpleDateFormat("M-d-yyyy").format(date) 

println newDate

我确信这很简单,但我无法找到解决方案。有人可以帮忙吗?

【问题讨论】:

您的日期以“DD-MMM-YYYY”模式给出,而您正在尝试解析其他内容... 重复***.com/questions/11135675/unparseable-date-30-jun-12 【参考方案1】:

使用 Groovy,您不需要包含,只需这样做:

String oldDate = '04-DEC-2012'
Date date = Date.parse( 'dd-MMM-yyyy', oldDate )
String newDate = date.format( 'M-d-yyyy' )

println newDate

打印:

12-4-2012

【讨论】:

@Andreas 7 年后,链接是docs.groovy-lang.org/docs/groovy-2.4.4/html/groovy-jdk/java/…【参考方案2】:

您的DateFormat 模式与您输入的日期String 不匹配。你可以使用

new SimpleDateFormat("dd-MMM-yyyy")

【讨论】:

【参考方案3】:

oldDate 不是您用来解析它的SimpleDateFormat 的格式。

试试这种格式:dd-MMM-yyyy - 它与您要解析的内容相匹配。

【讨论】:

以上是关于Java/Groovy - 简单的日期重新格式化的主要内容,如果未能解决你的问题,请参考以下文章

在记事本++中查找并替换为重新排序的日期格式

日期格式在重新加载剑道网格时重置

弹性重新索引日期格式太短

如何重新格式化和排序存储在 nvarchar 中的日期

Bash shell:如何从变量值重新格式化字符串日期

使用 Pandas 将每日数据重新采样为每月(日期格式)