Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 格式为';hh:mma';归零_Ios_Objective C_Iphone_Nsdate_Nsdateformatter - Fatal编程技术网

Ios 格式为';hh:mma';归零

Ios 格式为';hh:mma';归零,ios,objective-c,iphone,nsdate,nsdateformatter,Ios,Objective C,Iphone,Nsdate,Nsdateformatter,我在iPhone应用程序中遇到了一个问题 在我的应用程序中,我将时间字符串转换成这样的日期 NSString *time = @"01:30 PM"; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"hh:mm a"]; NSDate *date = [dateFormat dateFromString:time]; 由于某种原因,date总是在[dateForm

我在iPhone应用程序中遇到了一个问题

在我的应用程序中,我将时间字符串转换成这样的日期

NSString *time = @"01:30 PM";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm a"];
NSDate *date = [dateFormat dateFromString:time];
由于某种原因,
date
总是在
[dateFormat-dateFromString:time]
之后为零

谁能告诉我我做错了什么


谢谢

我假设您的设备语言不是英语。在这种情况下,您需要设置日期格式化程序区域设置。试试这个代码

NSString *time = @"01:30 PM";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm a"];
[dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
试试这个

NSString *time = @"01:30 pm";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeStyle:NSDateFormatterShortStyle];
[dateFormat setDateFormat:@"hh:mm a"];
dateFormat.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
NSDate *date = [dateFormat dateFromString:time];

NSLog(@"date %@",[dateFormat stringFromDate:date]);

不,工作正常输出:2000-01-01 08:00:00+00000您到底需要显示什么?我有两个时间字符串,格式为hh:mm a,我需要对它们进行比较,因此我想将它们转换为NSDate进行比较您的区域设置为英语吗?输出不是按照人员要求的格式(控制台输出:2000-01-01 08:00:00+0000),与上文中已提供的相同comments@user3414609-我看不出您的输出是如何随区域设置的使用而改变的。因为我刚才运行的代码中,有区域设置输出和没有区域设置输出是相同的。@nikhil84因为您的区域设置已经是英语的,如果您尝试用其他语言更改设备,则您将得到零。
NSString *time = @"01:30 pm";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeStyle:NSDateFormatterShortStyle];
[dateFormat setDateFormat:@"hh:mm a"];
dateFormat.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
NSDate *date = [dateFormat dateFromString:time];

NSLog(@"date %@",[dateFormat stringFromDate:date]);