我使用以下代码将一组日期保存到数据库中(我无法更改):
Date date = new Date()
save(date)
groovy 中是否没有干净的方法来重新格式化并显示用户本地时区的日期?比如...
dateCreated.format('h:mm a MMMM dd, yyyy', Locale.US)
Groovy 中没有内置类似的功能吗?是唯一的解决方案吗?
import java.text.SimpleDateFormat
String date = dateCreated.format('h:mm a MMMM dd, yyyy')
def fmt = new SimpleDateFormat('h:mm a MMMM dd, yyyy', Locale.US);
Date local_time = fmt.parse(date);
String formatted_local = local_time.format('h:mm a MMMM dd, yyyy')
formatted_local
Groovy 日期文档:http://docs.groovy-lang.org/latest/html/groovy-jdk/java/util/Date.html#format(java.lang.String)
引用:How to parse month full form string using DateFormat in Java?
最佳答案
在 Groovy 中应该非常简单。
假设,使用以下语句保存日期
def date = new Date()
println date
输出
Sun Apr 16 11:10:14 UTC 2017
如果您需要将其转换为具有特定日期时间格式的特定时区,只需使用下面的语句
println date.format('yyyy/MM/dd HH:mm', TimeZone.getTimeZone('IST'))
将显示输出:
2017/04/16 16:40
注意:源采用 UTC
格式,并将现有日期转换为 IST
格式。
如果您需要日期对象(不是上面提到的字符串),请使用以下内容:
def date = new Date()
def dtFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
def dt = date.format(dtFormat, TimeZone.getTimeZone('IST'))
assert dt instanceof String
def newDate = Date.parse(dtFormat, dt)
assert newDate instanceof Date
您可以快速在线尝试 Demo
关于date - 如何使用 Groovy 的 .format() 方法显示本地时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43432405/