在我的项目中,我需要检查一些来自服务器的格式,所以我想写一个正则表达式来检查格式。
这是格式“ 03/31/2013 08:00:00 ”,其他格式是“03/31/2003 08:00 AM/PM”
我如何检查此日期格式。谁能帮我。
问候基兰
在我的项目中,我需要检查一些来自服务器的格式,所以我想写一个正则表达式来检查格式。
这是格式“ 03/31/2013 08:00:00 ”,其他格式是“03/31/2003 08:00 AM/PM”
我如何检查此日期格式。谁能帮我。
问候基兰
^(?:\d{2}\/){2}\d{4} \d{2}:\d{2}(?::\d{2}| (?:AM|PM))?$
请注意,它不会检查不正确的值。
如果你想NSDate
从这个字符串中获取,你应该使用NSDateFormetter
:
NSString * date = @"03/31/2013 08:00:00"; // source string
NSDateFormatter * date_formatter = [[NSDateFormatter alloc] init];
[date_formatter setDateFormat: @"MM/dd/yyyy HH:mm:ss"]; // your date format
NSDate * result = [date_formatter dateFromString: date]; // converting
NSLog (@"%@", [result description]); // log your date result
[date_format release];
不是您关于正则表达式的问题的真正答案,但是,如果您想从从服务器收到的 dateString 中获取日期,您可以尝试使用 dateFormat 的试错法NSDateFormatter
。
NSString *dateFormat1 = @"MM/dd/yyyy HH:mm:ss";
NSString *dateFormat2 = @"MM/dd/yyyy hh:mm:ss a";
NSString *dateString = @"03/31/2013 08:00:00 AM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter setLocale:enUSPOSIXLocale];
[dateFormatter setDateFormat:dateFormat1];
NSDate *date = [dateFormatter dateFromString:dateString];
if (!date) {
[dateFormatter setDateFormat:dateFormat2];
date = [dateFormatter dateFromString:dateString];
}
NSLog(@"Date : %@",date);