I'm looking for an easy way to generate a MySQL DATETIME from any type of time input a user may enter. PHP makes it easy with its strtotime() function that can do:
strtotime(’2004-02-12T15:19:21+00:00′);
strtotime(’Thu, 21 Dec 2000 16:01:07 +0200′);
strtotime(’Monday, January 1st’);
strtotime(’tomorrow’);
strtotime(’-1 week 2 days 4 hours 2 seconds’);
Outputs:
2004-02-12 07:02:21
2000-12-21 06:12:07
2009-01-01 12:01:00
2009-02-12 12:02:00
2009-02-06 09:02:41
I want this in Java!
解决方案
Thanks for the quick reply ChssPly76. Here's my solution, although it's hard coded to handle dates coming in this format: "5 Aug 2009 07:27:51 GMT". Perhaps there is a way to allow it to easily handle other formats in case of a parse exception?
public static String stringToDateTime(String string) {
SimpleDateFormat sdf = new SimpleDateFormat("d MMM yyyy HH:mm:ss z");
Date date;
String sqlDate;
try {
date = sdf.parse(string);
SimpleDateFormat sqlFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sqlDate = sqlFormat.format(date);
}
catch(ParseException ex) {
sqlDate = string;
}
return sqlDate;
}