【问题标题】:While converting NSString to NSDate?将 NSString 转换为 NSDate 时?
【发布时间】:2016-09-01 04:13:57
【问题描述】:

我尝试使用以下代码将NSString 转换为NSDate

NSString *dateString=[[NSString alloc] init];
dateString = [[messageArray objectAtIndex:i] tim_dte];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm,yyyy/MM/dd"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
msg.date = dateFromString;

msg.Datenil,即使dateString 显示正确的日期字符串。我错过了什么?

【问题讨论】:

  • 你的dateString 能告诉你什么

标签: ios objective-c nsstring nsdate


【解决方案1】:

使用此代码,

NSString *dateString=[[NSString alloc] init];
dateString =[[messageArray objectAtIndex:i] tim_dte];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy/MM/dd HH:mm"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
msg.date=dateFromString;

希望对你有帮助

【讨论】:

  • 你为什么在这里分配日期
【解决方案2】:

改变这个格式

[dateFormatter setDateFormat:@"HH:mm,yyyy/MM/dd"];

进入并尝试

[dateFormatter setDateFormat:@"yyyy/MM/dd HH:mm"];

更新

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy/MM/dd HH:mm"];
// use simple 
msg.date =   [dateFormatter dateFromString:@"2016/05/06 12:36"];
  NSLog(@"final date == %@",dateFromString);
//NSDate *dateFromString = [dateFormatter dateFromString:@"2016/05/06 12:36"];

// NSLog(@"final date == %@",dateFromString);

【讨论】:

  • 谢谢,在将 nsstring 转换为 nsdate 时,日期格式也很重要吗?
  • @Bittoo -- 100 % manodatry 兄弟,如果它总是被修改,你会得到 nil
【解决方案3】:

试试这段代码将 NSString 转换为 NSDate

NSString *dateString = @"2016-05-06";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate *date = [dateFormatter dateFromString:@"2013-02-01T06:25:47Z"];
NSTimeZone *pdt = [NSTimeZone timeZoneWithAbbreviation:@"PDT"];
[dateFormatter setTimeZone:pdt];
[dateFormatter setDateFormat:@"HH:mm:ss zzz"];
[dateFormatter setDateFormat:@"K:mm a, z"];
NSString * updated String = [dateFormatter stringFromDate:date];

【讨论】:

    猜你喜欢
    • 2011-04-24
    • 2017-04-23
    • 2021-09-11
    • 2014-12-06
    • 2014-06-26
    • 2013-01-16
    相关资源
    最近更新 更多