加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 使用NSDateFormatter设置UIDatePicker日期

发布时间:2020-12-15 01:49:40 所属栏目:百科 来源:网络整理
导读:我正在尝试初始化一个UIDatePicker,其日期是在我的会话早期从该日期选择器返回给我的.这是库存计划的一部分,需要获取库存项目上次校准的日期. 使用此代码我收到一个日期/时间字符串: NSDate *choice = [pickedDate date];calDate = [[NSString alloc] initW
我正在尝试初始化一个UIDatePicker,其日期是在我的会话早期从该日期选择器返回给我的.这是库存计划的一部分,需要获取库存项目上次校准的日期.

使用此代码我收到一个日期/时间字符串:

NSDate *choice = [pickedDate date];
calDate = [[NSString alloc] initWithFormat:@"%@",choice];

我最终在calDate中使用以下字符串:2011-11-11 21:56:38 0000

我正在尝试使用以下代码设置我的日期选择器:

NSDate *date = [[[NSDate alloc] init] retain];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSLog(@"cal date = %.@.",drawingInfo.drawingDate);
if([calDate length] != 0) {
    date = [dateFormatter dateFromString:calDate];

    if(date != nil) {
            [pickedDate setDate:date animated:NO];
    }
}

NSLog验证字符串是否仍然有效.
如果我在if(date!= nil)上放置一个断点,它会显示date = nil.

提前致谢.

解决方法

你错过了日期格式的Z格式说明符.

这段代码:

NSString *calDate = @"2011-11-11 21:56:38 +0000";
NSDate *date = [[[NSDate alloc] init] retain];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];  
//                                   right here    ^

date = [dateFormatter dateFromString:calDate];

NSLog(@"date:%@",date);

输出:

2012-01-03 20:14:15.258 Craplet[38753:707] date:2011-11-11 21:56:38 +0000

没有Z:

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

它输出:

2012-01-03 20:16:10.456 Craplet[38885:707] date:(null)

如果格式无法与日期字符串匹配,则返回nil

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读