如何在Groovy中解析日期格式,例如"10/07/2018 10:07 pm"
。
我们使用以下格式
Date.parse("dd-MM-yyyy hh:MM:SS","10/07/2018 10:07 pm")
是否正确
答案 0 :(得分:1)
不,应该是
Date d = Date.parse("dd/MM/yyyy hh:mm aa","10/07/2018 10:07 pm")
或者,如果您运行在Java 8之上,则可以使用更好的
LocalDateTime d = LocalDateTime.parse(
"10/07/2018 10:07 pm",
DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm aa")
)
答案 1 :(得分:0)
我建议使用Java 8类型而不是java.util.Date
。可悲的是,没有一种简单的方法可以用DateTimeFormatter
来容纳小写的“ pm”。便宜的方法是将String大写:
java.time.LocalDateTime.parse('10/07/2018 10:07 pm'.toUpperCase(), 'dd/MM/yyyy hh:mm a')
此SO post中所述的更“正确”的方式是:
import java.time.LocalDateTime
import java.time.format.*
import java.time.temporal.ChronoField
DateTimeFormatter dtf = new DateTimeFormatterBuilder()
.appendPattern('dd/MM/yyyy hh:mm ')
.appendText(ChronoField.AMPM_OF_DAY, [(0L):'am',(1L):'pm'])
.toFormatter();
LocalDateTime.parse('10/07/2018 10:07 pm', dtf)
答案 2 :(得分:0)
格式应为dd-MM-yyyy hh:MM:SS a
Date.parse("dd-MM-yyyy hh:MM:SS a","10-07-2018 10:07:00 am")
Date.parse("dd/MM/yyyy hh:MM a","10/07/2018 10:07 pm")
请在这里检查结果: https://groovyconsole.appspot.com/script/5203535180333056