返回 null iOS 的 NSString 格式的日期?
Date in NSString format returning null iOS?
我正在获取 NSString 格式的日期“2016-03-16T00:00:00.000+05:30”
我正在使用以下方法将 NSString 日期转换为正确的 NSDate 格式并返回 null。
NSString *dateString = @"2016-03-16T00:00:00.000+05:30";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'hh:mm:ssZZZ"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
//dateFromString returns null.
请帮忙
我已经用这个代码更新了
NSString *strDateFor = [polygon valueForKey:@"effective_from"];
NSDateFormatter *dateformate=[[NSDateFormatter alloc]init];
[dateformate setDateFormat:@"yyyy-MM-dd 'T' HH:mm:ss ZZZZ"];
NSDate *date = [dateformate dateFromString:strDateFor];
NSLog(@"date : %@",date); //null
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"dd-MM-yyyy"];
NSString *strDate = [dateFormat stringFromDate:date];
NSLog(@"The strDate is - %@", strDate); //null
再次为空
首先,行:
NSDate *dateFromString = [[NSDate alloc] init];
没有任何意义,因为您没有使用您在此处创建的 NSDate
实例。别管它了。
其次,如果您像这样解析日期字符串,总是设置日期格式化程序的locale
。默认情况下,NSDateFormatter
使用用户当前的语言环境,它可以是任何东西,所以你不能依赖它。您可能需要 en_US_POSIX
语言环境,因为它保证将来不会更改。
第三,你的日期格式字符串是错误的,因为你没有指定小数秒(.SSS
)。
这个有效:
NSString *dateString = @"2016-03-16T00:00:00.000+05:30";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss.SSSZZZ"];
NSDate *dateFromString = [dateFormatter dateFromString:dateString];
我正在获取 NSString 格式的日期“2016-03-16T00:00:00.000+05:30” 我正在使用以下方法将 NSString 日期转换为正确的 NSDate 格式并返回 null。
NSString *dateString = @"2016-03-16T00:00:00.000+05:30";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'hh:mm:ssZZZ"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
//dateFromString returns null.
请帮忙
我已经用这个代码更新了
NSString *strDateFor = [polygon valueForKey:@"effective_from"];
NSDateFormatter *dateformate=[[NSDateFormatter alloc]init];
[dateformate setDateFormat:@"yyyy-MM-dd 'T' HH:mm:ss ZZZZ"];
NSDate *date = [dateformate dateFromString:strDateFor];
NSLog(@"date : %@",date); //null
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"dd-MM-yyyy"];
NSString *strDate = [dateFormat stringFromDate:date];
NSLog(@"The strDate is - %@", strDate); //null
再次为空
首先,行:
NSDate *dateFromString = [[NSDate alloc] init];
没有任何意义,因为您没有使用您在此处创建的 NSDate
实例。别管它了。
其次,如果您像这样解析日期字符串,总是设置日期格式化程序的locale
。默认情况下,NSDateFormatter
使用用户当前的语言环境,它可以是任何东西,所以你不能依赖它。您可能需要 en_US_POSIX
语言环境,因为它保证将来不会更改。
第三,你的日期格式字符串是错误的,因为你没有指定小数秒(.SSS
)。
这个有效:
NSString *dateString = @"2016-03-16T00:00:00.000+05:30";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss.SSSZZZ"];
NSDate *dateFromString = [dateFormatter dateFromString:dateString];