如何通过 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 对象增加一秒的主要内容,如果未能解决你的问题,请参考以下文章

mysql如何自动增加一列序号

DB2中表如何增加一列,表中已有很多数据 如表user中有id,name我想增加一个addr那该怎么弄呢?语句怎么写呢

SQL语句如何增加列?

如何为每一行将 DateTime 列增加一秒?

如何不只增加一次int数?

在 PHP 中增加会话变量的问题。它只增加一次