0

私は SoupUI で作業しており、GMT の日付/時刻への応答で返される日付/時刻 (UTC) を調整する必要があります。応答で返される日付は次のようになります。

2012-11-09T00:00:00+01:00

これを次のように変換したい

2012-11-08T23:00:00Z

残念ながら、私には Java のスキルがなく、したがって自分でこれを行うには Groovy のスキルもありません。日付の変換について多くの検索を行いましたが、今まで探していたものを見つけることができませんでした。私は探し続けます。解決策を得ることができたら、ここに投稿します。

4

1 に答える 1

3

Assuming there isn't a colon in the timezone portion, I believe this should work:

// Your input String (with no colons in the timezone portion)
String original = '2012-11-09T00:00:00+0100'

// The format to read this input String
def inFormat = new java.text.SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ssZ" )

// The format we want to output
def outFormat = new java.text.SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss'Z'" )
// Set the timezone for the output
outFormat.timeZone = java.util.TimeZone.getTimeZone( 'GMT' )

// Then parse the original String, and format the resultant
// Date back into a new String
String result = outFormat.format( inFormat.parse( original ) )

// Check it's what we wanted
assert result == '2012-11-08T23:00:00Z'

If there is a colon in the TimeZone, you'll need Java 7 for this task (or maybe a date handling framework like JodaTime), and you can change the first two lines to:

// Your input String
String original = '2012-11-09T00:00:00+01:00'

// The format to read this input String (using the X
// placeholder for ISO time difference)
def inFormat = new java.text.SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ssX" )
于 2012-09-26T15:09:08.613 に答える