gpt4 book ai didi

iphone - 如何获取 00 :00 on the day of [NSDate date]? 的 NSDate

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

我需要从 [NSDate date] 获取 00:00(当天开始)的 NSDate 对象,假设当前是 2012 年 1 月 6 日上午 11:30(由 [NSDate date] 返回) ,现在我需要一个 2012 年 1 月 6 日上午 00:00 的 NSDate。

我没有尝试过,但我的想法是:

NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:now];
[components setHour:0];
[components setMinute:0];
[components setSecond:0];
NSDate *morningStart = [calendar dateFromComponents:components];

所以我首先获取当前日期(假设是 01/06/2012),并为该日期构造一个 NSDateComponent,然后我将小时/分钟/秒设置为 0 并且年/月/日不应更改(即 01/06/2012)然后我为此组件设置创建一个 NSDate,我可以获得 00:00:00 01/06/2012 的日期吗?

最佳答案

你的做法是正确的,但是当你 NSLogmorningStart 时,日期将显示在 GMT 时区

如果你想确保日期正确,请将其转换为 NSString

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MMM-dd HH:mm:ss"];
NSString *strFromDate = [formatter stringFromDate:morningStart]; // this will return 2012-Jun-21 00:00:00

关于iphone - 如何获取 00 :00 on the day of [NSDate date]? 的 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11133632/

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