Is Date.parse() in Java safe to use, even though it is deprecated? If not, is there a viable alternative?
<p>I often use <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html#parse-java.lang.String-" rel="nofollow">Date.parse(String)</a> to parse a date in an unknown format. It seems to work fine for my use cases so far, but I'm wondering why it was deprecated, and whether I should avoid it? The docs just say:</p>

<pre><code>As of JDK version 1.1, replaced by DateFormat.parse(String s)
</code></pre>

<p>However, there's no static parse method in DateFormat, just <a href="http://docs.oracle.com/javase/8/docs/api/java/text/DateFormat.html#parse-java.lang.String-" rel="nofollow">an instance method</a>, which requires a DateFormat object, which I won't have for an unknown date format.</p>

<p>So, I'm wondering...</p>

<ul>
<li>Is there any official statement somewhere from the Java designers about why they chose to deprecate it?</li>
<li>If this method works fine for my use cases so far, can I rely on this functionality being available in future versions of Java?</li>
<li>Is there a viable alternative that is not deprecated for parsing a string that is in one of many possible common date formats?</li>
</ul>