How do I check if a string contains a date of this form:
Sunday, January 15, 2012 at 7:36pm EST
The data I\'m working with contains
If you don't want to use Regex you may do something like this (I know it is a pain but just a different approach).
public class ParseDate {
public static void main(String[] args) {
String date = "Rahul Chowdhury Sunday, January 15, 2012 at 7:36pm EST";
//Pattern: "Fullname EEEEE, MMM dd, yyyy 'at' hh:mmaa z"
String dateComponents[] = date.split(",");
String fullName = dateComponents[0].substring(0, dateComponents[0].lastIndexOf(" "));
String dayText = dateComponents[0].substring(dateComponents[0].lastIndexOf(" "));
String month = dateComponents[1].trim().split(" ")[0];
String dayNumber = dateComponents[1].trim().split(" ")[1];
String year = dateComponents[2].split("at")[0];
String time = dateComponents[2].split("at")[1].trim().split(" ")[0];
String zone =dateComponents[2].split("at")[1].trim().split(" ")[1];
// if you want to go further
String hour = time.split(":")[0];
String minutes = time.split(":")[1].substring(0,2);
String aa = time.split(":")[1].substring(2,4);
System.out.println(fullName + " " + dayText + " " + month + " " + dayNumber + " " + year + " " + time + " " + zone);
System.out.println(hour + " " + minutes + " " + aa);
}
}
Output
Rahul Chowdhury Sunday January 15 2012 7:36pm EST
7 36 pm