在我的项目中,我需要检查一些来自服务器的格式,所以我想写一个正则表达式来检查格式。
格式为“ 03/31/2013 08:00:00 ”,其他格式为“03/31/2003 08:00 AM / PM”
如何查看此日期格式。任何人都可以帮助我。
此致 基兰
答案 0 :(得分:0)
^(?:\d{2}\/){2}\d{4} \d{2}:\d{2}(?::\d{2}| (?:AM|PM))?$
请注意,它不会检查错误的值。
答案 1 :(得分:0)
如果您想从此字符串中获取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];
答案 2 :(得分:0)
关于正则表达式的问题不是真正的答案,但是,如果您想从服务器收到dateString中获取日期,可以尝试使用NSDateFormatter
的dateFormat进行试错法。
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);