我有这样的字符串:“星期二,2013 年 10 月 22 日 1:59 pm EEST”我正在尝试设置这些解析规则:
[formatter setDateFormat: @"EEE, dd MMM yyyy hh:mm a z"];
但这nil
会在我执行时返回:
[formatter dateFromString: @"Tue, 22 Oct 2013 1:59 pm EEST"];
这种格式的正确正则表达式是什么?
我有这样的字符串:“星期二,2013 年 10 月 22 日 1:59 pm EEST”我正在尝试设置这些解析规则:
[formatter setDateFormat: @"EEE, dd MMM yyyy hh:mm a z"];
但这nil
会在我执行时返回:
[formatter dateFromString: @"Tue, 22 Oct 2013 1:59 pm EEST"];
这种格式的正确正则表达式是什么?
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEE, dd MMM yyyy hh:mm a zzz"];
[formatter setLocale:locale];
NSDate* date = [formatter dateFromString:@"Tue, 22 Oct 2013 1:59 PM EEST"];
NSLog(@"date: %@",date);
O/P:-date: 2013-10-22 10:59:00 +0000
hh
是一个填充小时(在您的情况下为“01”),但您的字符串没有填充小时(只有 "1" ),所以它应该只是h
。
您可以在下面看到不同格式组件的实际示例(来自此 GitHub gist的输出)。被格式化的日期是1987-08-27 15:24:03
format result
--------------
yy 87
yyyy 1987
M 8
MM 08
MMM Aug
MMMM August
dd 27
HH 15
hh 03 // <--.
h 3 // <--'--- note the difference
a PM
mm 24
m 24
ss 03
s 3