所以这很有趣:
\npo Calendar.default.date(from: DateComponents(year: 2022, month: 1, hour: 16, minute: 1, second: 1, weekday: 1, weekOfMonth: 1))\n\xe2\x96\xbf Optional<Date>\n \xe2\x96\xbf some : 2021-12-26 23:01:01 +0000\n - timeIntervalSinceReferenceDate : 662252461.0\nRun Code Online (Sandbox Code Playgroud)\n我预计是 2022 年 1 月 1 日,但我得到的是 2021 年 12 月 26 日?它为什么要这样做?难道我做错了什么?
\n我正在开发一个应用程序,需要根据他们的生日找到某人的年龄.我有一个简单的NSDate但我怎么会发现这个NSDateFormatter?
我有个约会.
NSLog 显示为:
2014-05-11 21:59:59 +0000
Run Code Online (Sandbox Code Playgroud)
现在我想获得相同的日期,但小时,分钟和秒设置为零:
2014-05-11 00:00:00 +0000
Run Code Online (Sandbox Code Playgroud)
我的代码:
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setTimeZone:[NSTimeZone localTimeZone]];
NSDateComponents *components = [calendar components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:dayOfWeek];
NSLog(@"components: %@", components);
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:[components year]];
[comps setMonth:[components month]];
[comps setDay:[components day]];
[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];
NSLog(@"New date: %@", [calendar dateFromComponents:comps]);
Run Code Online (Sandbox Code Playgroud)
但NSLog显示:
2014-05-10 22:00:00 +0000
Run Code Online (Sandbox Code Playgroud)
似乎日和小时计算错误.请注意,我在德国,但我使用,[NSTimeZone localTimeZone]因为我认为这应该返回正确的时区?
如何将以下字符串"10月24日,星期一美国东部时间12:30"转换为NSDateFormat.
我试过这段代码
NSDateFormatter *dateformat=[[NSDateFormatter alloc]init];
[dateformat setDateFormat:@"MM/DD/YYYY hh:mm a"];
NSDate *datefor=[dateformat dateFromString:appDelegate.appoinmentString];
[dateformat setDateFormat:@"MM-dd-yyyy hh:mm a"];
NSString *dateStr=[dateformat stringFromDate:datefor];
NSDate *datetype=[dateformat dateFromString:dateStr];
Run Code Online (Sandbox Code Playgroud) 具体来说,我希望print我的当前日期格式如下 - 2016-12-08 03:37:22 +0000.我试过NSDateComponents.Swift 2.1告诉我NSSecondCalendarUnit已被弃用且无法识别NSCalendarUnitSecond.做这个的最好方式是什么?