簡體   English   中英

如何在 groovy 腳本中格式化日期

[英]How can i format date in groovy script

嗨,我有一個從我的 Jira Sprint 環境 2019-03-29T06:56:00.000-04:00 獲取的日期格式

我正在使用 groovy 腳本。

我曾嘗試使用多種格式來制作與上述類似的格式。 但無能為力。 這是我嘗試過的以下解決方案。

1 --

`def sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
sdf.setTimeZone(TimeZone.getTimeZone("GMT"))
log.debug("Printing Current time stamp date : "+sdf)

解決方案 1 僅打印文本。

2 --

def now = new Date()
println now.format("yyyy-MM-dd'T'HH:mm:ss'Z'",TimeZone.getTimeZone('UTC'))

這個正在打印

Printing Current time stamp date : Thu Sep 26 08:00:35 EDT 2019"

誰可以幫我這個事?

鑒於您有一個 Java 8 或更新版本,您所需要的只是

OffsetDateTime.now(ZoneId.systemDefault()).toString()

在我的時區(歐洲/哥本哈根)我剛得到

2019-09-27T21:46:53.336204+02:00

如果您的默認時區是America/MontrealAmerica/New_York ,只要夏令時(夏令時)有效,您將獲得偏移量 -04:00 的時間,然后是 -05:00。

而且您可以輕松解析。

OffsetDateTime.parse( "2019-09-27T21:46:53.336204+02:00" ) 

請參閱在 IdeOne.com 上運行的此代碼

所以,目標是有格式的日期

2019-03-29T06:56:00.000-04:00

以下代碼使用時區 GMT-4 進行格式化

def now=new Date().format("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",TimeZone.getTimeZone('GMT-4'))
println now

印刷

2019-09-26T16:33:18.462-04:00

請注意,該變量now將包含帶有格式化日期的String

檢查所有可用的日期和時間模式:

https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

def currentDate = new Date()
def date = currentDate.format('yyyy-MM-dd')
def time = currentDate.format('HH:mm:ss.SSS')
def dateTime = date.toString() + 'T' + time.toString() + 'Z'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM