date - 如何使用 Groovy 的 .format() 方法显示本地时间?

标签 date groovy format

我使用以下代码将一组日期保存到数据库中(我无法更改):

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/

相关文章:

json - 如何使用 jq 将当前日期和时间附加到现有 json 文件中

Mysql:选择两个日期之间的所有数据

grails - Grails-java.sql.Date的非法参数

php - Smarty 缩进和代码格式

php - ¨显示有效数字

java - 使用仅字符串格式化程序将纪元时间戳字符串转换为Joda日期时间

python-3.x - pandas 数据框中两个给定日期之间的日期列表

ruby - 使用 Ruby 计算一年中的周数

java - 如何频繁更新 Hazelcast map

groovy - 如何向 Groovy SwingBuilder 表添加表头?