iOS中日期格式的正则表达式

时间:2013-04-15 08:08:55

标签: ios regex nsdateformatter

在我的项目中,我需要检查一些来自服务器的格式,所以我想写一个正则表达式来检查格式。

格式为“ 03/31/2013 08:00:00 ”,其他格式为“03/31/2003 08:00 AM / PM”

如何查看此日期格式。任何人都可以帮助我。

此致 基兰

3 个答案:

答案 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);