Question

I am working with SoupUI a i need to adjust a Date/time (UTC) that i get back in a response to a GMT Date/time. The date that i get back in the respone looks as followes:

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

I would like to convert this to

2012-11-08T23:00:00Z

Unfortunatly i lack Java skils and therefore also Groovy skils to be able to do this on my own. i did a lot o searches on date convertions but until now i was still unable to find what i was looking for. i will keep searching. if i do manage to get the solution then i will post it here.

Was it helpful?

Solution

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" )
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top