簡體   English   中英

使用Swift 2獲取明天的約會

[英]Get tomorrow's date with Swift 2

我有這個代碼,它以今天的格式M / dd / yy給出今天的日期

let dateFormater = NSDateFormatter()
            dateFormater.dateFormat = "M/dd/yy"
            let todayDate = dateFormater.stringFromDate(NSDate())

我怎么能得到同樣的東西,但第二天的日期好嗎?

首先,在這個例子中(從現在開始的一天是明天),您將獲得所需日期的NSDate:

var oneDayfromNow: NSDate {
    return NSCalendar.currentCalendar().dateByAddingUnit(.Day, 
    value: 1, toDate: NSDate(), options: [])!
}

print(oneDayfromNow)

然后將其轉換為格式為字符串(您的情況為M / dd / yy):

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "M/dd/yy"
let str = dateFormatter.stringFromDate(oneDayfromNow)
print(str)

它有點復雜,但無論如何,這都是你需要知道的。

為什么這很困難:你會認為你可以采取NSDate(timeIntervalSinceNow:24 * 60 * 60),現在增加一天。 但是當你開啟夏令時時,那么晚上11:30加上24小時是兩天后的00:30。 當夏令時關閉時,上午00:30加24小時可以在同一天的晚上11:30。

因此,您需要創建一個NSCalendar對象,將NSDate()轉換為組件,將一天添加到組件,轉換回NSDate(所有這些都在第二天為您提供相同的時間,處理所有特殊情況),然后格式化結果就像你現在做的那樣。

我終於使用這段代碼來解決它:讓dateFormater = NSDateFormatter()

dateFormater.dateFormat = "M/dd/yy"
let todayDate = dateFormater.stringFromDate(NSDate().dateByAddingTimeInterval(24 * 60 * 60))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM