无法从字符串中获取日期?

Unable to get date from string?

我从服务器“8/27/2016 6:56:23 AM”获取 DateTime 字符串

我想从这个字符串中获取唯一的日期

        NSString *StreamStartDateTime=@"8/27/2016 6:56:23 AM";
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"yyyyMMdd"];
        NSDate *date1=[dateFormatter dateFromString:StreamStartDateTime];

但问题是我在 date1 中得到了 null。

请帮我找出我哪里做错了。

喜欢

 NSString *StreamStartDateTime=@"8/27/2016 6:56:23 AM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 [dateFormatter setDateFormat:@"MM/dd/yyyy h:mm:ss a"]; or use hh:mm:ss a
 NSDate *date1=[dateFormatter dateFromString:StreamStartDateTime];
[dateFormatter setDateFormat:@"yyyyMMdd"];
 NSString *ssecond=[dateFormatter stringFromDate:date1];
  NSDate *finalDate=[dateFormatter dateFromString:ssecond];

最终输出为

你用错了dateFormat。请用以下内容替换您的代码:

NSString *StreamStartDateTime=@"8/27/2016 6:56:23 AM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *date1=[dateFormatter dateFromString:StreamStartDateTime];

您的日期格式必须与您的日期字符串匹配。

因此,如果您的日期字符串是 8/27/2016 6:56:23 AM,那么您的格式必须是 MM/dd/yyyy hh:mm:ss a。然后使用这种格式首先从字符串中获取日期,例如

 NSDate *date=[df dateFromString:StreamStartDateTime];

现在,将日期格式化程序更改为您希望日期显示的任何格式,

 [df setDateFormat:@"yyyyMMdd"];

然后

  NSString *resultDateStr = [df stringFromDate:date];

可以这样试试

NSString *StreamStartDateTime=@"8/27/2016 6:56:23 AM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM/dd/yyyy h:mm:ss a"];
NSDate *streamStartDate = [formatter dateFromString:StreamStartDateTime];
[formatter setDateFormat:@"yyyyMMdd"];
NSString *strDate = [formatter stringFromDate:streamStartDate];
NSDate *compDate = [formatter dateFromString:strDate]; // Get date in UTC format

输出:

strDate的打印说明: 20160827

compDate的打印说明: 2016-08-26 18:30:00 +0000

NSString *LiveStreamStartDateTime=@"8/27/2016 6:56:23 AM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yyyy h:mm:ss a"];
NSDate *date1=[dateFormatter dateFromString:LiveStreamStartDateTime];
[dateFormatter setDateFormat:@"MM/dd/yyyy"];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSString *fisrtdate=[dateFormatter stringFromDate:date1];
NSDate *date11 = [dateFormatter dateFromString:fisrtdate];