 <p>You have to trim the last colon to align with java's zone info format of <code>"-0600"</code>. </p> <p>Try this:</p> <pre><code>String str = "2013-01-17T00:00:00-06:00"; new SimpleDataFormat("yyyy-MM-dd'T'hh:mm:ssZ").parse(str.replaceAll(":(..)$", "$1")); </code></pre>