我从字符串中得到了一个特定的日期 NSString * str = @" 2016-05-04 08:42:00 + 0000&#34 ;; 我希望将其转换为08:42 AM格式。 这是我的代码
NSString *str = @"2016-05-04 08:42:00 +0000";// put here item.TimeStart
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init] ;
[dateFormatter1 setDateFormat:@"EEE, dd MMM YYYY HH:mm:ss VVVV"];// here give the format which you get in TimeStart
NSDate *date1 = [dateFormatter1 dateFromString: str];
dateFormatter1 = [[NSDateFormatter alloc] init] ;
[dateFormatter1 setDateFormat:@"hh:mm a"];
NSString *convertedString = [dateFormatter stringFromDate:date1];
NSLog(@"Converted String : %@",convertedString);
但是这在Converted String中返回nil。为什么?有什么想法??
答案 0 :(得分:0)
请添加以下行以将时区时差设置为0,您将获得实际时间。
//Add this line to set the time zone time difference to 0
dateFormatter1.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
添加此内容后,您的最终代码将如下所示:
NSString *str = @"2016-05-04 08:42:00 +0000";
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init] ;
[dateFormatter1 setDateFormat:@"YYYY-dd-MM HH:mm:ss VVVV"];
NSDate *date1 = [dateFormatter1 dateFromString: str];
dateFormatter1 = [[NSDateFormatter alloc] init];
//Add this line to set the time zone time difference to 0
dateFormatter1.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
[dateFormatter1 setDateFormat:@"hh:mm a"];
NSString *convertedString = [dateFormatter1 stringFromDate:date1];
NSLog(@"Converted String : %@",convertedString);
答案 1 :(得分:0)
它会帮助你
-(NSDate *)calculateDate:(NSString *)getString
{
NSDateFormatter *Format = [[NSDateFormatter alloc] init];
[Format setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSDate *aDate = [Format dateFromString:getString];
if( !aDate )
{
[Format setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss a"];
[Format setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
aDate = [Format dateFromString:getString];
}
return aDate;
}
当我们有一个像2001-02-15T13:25:00的字符串,我们想要将其格式化为12H格式,我们只需要定义本地。