如何通过 NSDate 对象增加一秒
Posted
技术标签:
【中文标题】如何通过 NSDate 对象增加一秒【英文标题】:How to increment one second by a NSDate object 【发布时间】:2013-01-09 06:11:34 【问题描述】:我有一个 NSString,其格式为 @"2013-01-09 06:10:10 +0000"(我从服务器获取它,它不是当前时间)。我想连续增加一秒。我可以使用计时器来完成,但是如何将时间增加一秒?
【问题讨论】:
【参考方案1】:试试这个,
NSDate *correctDate = [NSDate dateWithTimeInterval:1.0 sinceDate:yourDate];
您可以使用 NSDateFormatter
从字符串中获取 yourDate。
【讨论】:
【参考方案2】:如今(2017 年)Apple 建议使用 (NS)Calendar
进行各种日期数学运算
Objective-C
NSDate *now = [NSDate date];
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
NSDate *nowPlusOneSecond = [currentCalendar dateByAddingUnit:NSCalendarUnitSecond
value:1
toDate:now
options:NSCalendarMatchNextTime];
斯威夫特 3
let now = Date()
let currentCalendar = Calendar.current
let nowPlusOneSecond = currentCalendar.date(byAdding: .second, value: 1, to: now)!
【讨论】:
【参考方案3】:在您的日期中添加 1 秒,如下所示..
NSDate *mydate = [NSDate date];
NSTimeInterval secondsInEightHours = 60; // you can add hours and minuts with multiply the numbers with this second..
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours];
【讨论】:
否决从this question复制代码但不修复它(不修复变量名,代码实际上并没有增加一秒,它增加了60秒) @Marko 我只是发布了我之前在我的应用程序中使用过的代码,当时我不知道我从哪个答案中得到解决方案,所以我发布了我的代码,而不是从任何其他人的答案中复制的。我不知道,但这是我只用我的代码和逻辑发布的代码。【参考方案4】:假设您的日期字符串在名为 serverString 的 var 中。您可以通过这种方式获得约会...
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss z"];
NSDate *date = [df dateFromString:serverString];
并以这种方式递增:
date = [date dateByAddingTimeInterval:1.0];
【讨论】:
【参考方案5】:SWIFT 3.x 解决方案
// Just an example to present second level date/time calculation
let time = NSDate()
let interval:Double = 5.0
let timeFiveSecondLater = time.addingTimeInterval(interval)
【讨论】:
以上是关于如何通过 NSDate 对象增加一秒的主要内容,如果未能解决你的问题,请参考以下文章