我编写了一个简单的函数来从NSString返回NSDate。但它总是返回零。
NSString值为“03:43 PM”。但是,如果日期格式为阿拉伯语,即“09:56ص”。它返回一个正确的日期。有什么想法吗?
代码:
- (NSDate*) GetTime:(NSString*) txt
{
NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"hh:mm a"];
return [df dateFromString:txt];
}
答案 0 :(得分:7)
根据上面的评论,将语言环境设置如下
- (NSDate*) GetTime:(NSString*) txt
{
NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US"]];
[df setDateFormat:@"hh:mm a"];
return [df dateFromString:txt];
}
这将确保无论设备区域设置如何,如果您按照所需格式传递英文字符串,它将正确创建NSDate
。