gpt4 book ai didi

Objective-C – NSDateFormatter dateFromString 忽略时间

转载 作者:行者123 更新时间:2023-12-03 17:04:38 27 4
gpt4 key购买 nike

如果我对时间不感兴趣,我可以忽略它吗?即我有一个日期字符串,看起来像这样 @"2012-12-19T14:00:00" 但我只对获取日期 (2012-12-19) 感兴趣,但如果我设置NSDateFormatter 就像 [dateFormatter setDateFormat:@"yyyy-MM-dd"]; 它会返回一个 nil NSDate

最佳答案

一个 NSDate 对象也总是包含一个时间组件,因为它代表一个时间点——从这个角度来看,人们可能会认为 NSDate 这个名字具有误导性。

您应该创建一个日期格式化程序来从字符串创建日期,将时间设置为一天的开始,并使用第二个日期格式化程序来输出不带时间部分的日期。

NSString *dateString = @"2012-12-19T14:00:00";

NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];

NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateStyle:NSDateFormatterShortStyle];
[outputFormatter setTimeStyle:NSDateFormatterNoStyle];

NSDate *date = [inputFormatter dateFromString:dateString];

//this will set date's time components to 00:00
[[NSCalendar currentCalendar] rangeOfUnit:NSDayCalendarUnit
startDate:&date
interval:NULL
forDate:date];

NSString *outputString = [outputFormatter stringFromDate:date];

NSLog(@"%@", outputString);

结果

19.12.12

而格式(通过样式选择)将取决于您的环境区域设置

关于Objective-C – NSDateFormatter dateFromString 忽略时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13453358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com