package com.eucalyptus.auth.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.TimeZone; import org.apache.log4j.Logger; import com.eucalyptus.auth.login.AuthenticationException; public class Timestamps { private static Logger LOG = Logger.getLogger( Timestamps.class ); public static Calendar parseTimestamp( final String timestamp ) throws AuthenticationException { Calendar ts = Calendar.getInstance( ); for ( String tsPattern : Timestamps.iso8601 ) { try { SimpleDateFormat tsFormat = new SimpleDateFormat( tsPattern ); tsFormat.setTimeZone( TimeZone.getTimeZone( "GMT" ) ); ts.setTime( tsFormat.parse( timestamp ) ); return ts; } catch ( ParseException e ) { LOG.debug( e, e ); } } throw new AuthenticationException( "Invalid timestamp format." ); } private static String[] iso8601 = { "yyyy-MM-dd'T'HH:mm:ss", "yyyy-MM-dd'T'HH:mm:ssZ", "yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'Z", "yyyy-MM-dd'T'HH:mm:ss'Z'", "yyyy-MM-dd'T'HH:mm:ss'Z'Z" }; }