Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift中查找NSDate?_Ios_Iphone_Swift_Nsdate - Fatal编程技术网

Ios 如何在Swift中查找NSDate?

Ios 如何在Swift中查找NSDate?,ios,iphone,swift,nsdate,Ios,Iphone,Swift,Nsdate,我从函数中获得秒值。例如,我得到:22'356秒。现在我想从Now中减去这个值,然后得到NSDate,我如何实现它 此外,我还有一个功能: let date = NSDate(timeIntervalSinceNow:time.doubleValue) let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "dd.MM.yyyy" self.lastSeenText = "last seen on \(dateForm

我从函数中获得秒值。例如,我得到:22'356秒。现在我想Now中减去这个值,然后得到
NSDate
,我如何实现它

此外,我还有一个功能:

let date = NSDate(timeIntervalSinceNow:time.doubleValue)
let dateFormatter = NSDateFormatter()

dateFormatter.dateFormat = "dd.MM.yyyy"
self.lastSeenText = "last seen on \(dateFormatter.stringFromDate(date))"
但是这个函数为现在的添加了差异。例如,如果差值为2天,而今天为12.10.15,则将打印14.10.15

如何获得相反的值,10.10.15?

这应该有效

let datenow = NSDate()
let twoDays: NSTimeInterval = 2*24*60*60
let date = datenow.dateByAddingTimeInterval(-twoDays)
let dateFormatter = NSDateFormatter()

dateFormatter.dateFormat = "dd.MM.yyyy"
let lastSeenText = "last seen on \(dateFormatter.stringFromDate(date))"
更改此行:

let date = NSDate(timeIntervalSinceNow:time.doubleValue)
为此:

let date = NSDate(timeIntervalSinceNow: -NSTimeInterval(time.doubleValue))

时间之前使用减号。doubleValue

let date = NSDate(timeIntervalSinceNow:-time.doubleValue)
let dateFormatter = NSDateFormatter()

dateFormatter.dateFormat = "dd.MM.yyyy"
self.lastSeenText = "last seen on \(dateFormatter.stringFromDate(date))"
检查以下内容

let datenow = NSDate()
let twoDays: NSTimeInterval = 2*24*60*60
let date = datenow.dateByAddingTimeInterval(-twoDays)
print(date)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy"
let lastSeenText = "last seen on \(dateFormatter.stringFromDate(date))"
print(lastSeenText)

减去一个数字
x
与添加
-x
.@MartinR一元运算符“-”不能应用于类型为“UInt”的操作数,这意味着您没有显示实际代码。或者是
time.doubleValue
an
UInt
?是的,它是UInt@MartinRWe无法知道它是如何定义的,因为您没有显示定义。但是定义一个属性
doubleValue
的类型为
UInt
,至少对代码的每个读者来说都是非常误导的。一元运算符“-”不能应用于“UInt”类型的操作数我已经在我的计算机上测试过了,一切都成功了问题是我的
timeInSeconds
是UInt,不是NSTimeInterval然后将其转换为NSTimeInterval你不能指望每天都有24小时。如果
time.doubleValue
是一个UInt,那么就不能使用日期,因为在问题的评论中已经说明了这一点。为什么要投减号票?我已经在我的xcode上测试过了。