0

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

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

我如何检查此日期格式。谁能帮我。

问候基兰

4

3 回答 3

0
^(?:\d{2}\/){2}\d{4} \d{2}:\d{2}(?::\d{2}| (?:AM|PM))?$

请注意,它不会检查不正确的值。

于 2013-04-15T08:14:21.690 回答
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];
于 2013-04-15T08:37:48.247 回答
0

不是您关于正则表达式的问题的真正答案,但是,如果您想从从服务器收到的 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);
于 2013-04-15T08:38:43.190 回答