我試圖以dd/MM/yyyy
格式獲取當前月份的開始日期和結束日期。我嘗試使用擴展名爲SO Question。但它看起來不是我想要的(格式不同,它也給我上個月的最後一個日期和本月最後一個日期)。有人能幫我嗎。如何獲取當前月份的開始日期和結束日期(Swift 3)
擴展類:
extension Date {
func startOfMonth() -> Date? {
let comp: DateComponents = Calendar.current.dateComponents([.year, .month, .hour], from: Calendar.current.startOfDay(for: self))
return Calendar.current.date(from: comp)!
}
func endOfMonth() -> Date? {
var comp: DateComponents = Calendar.current.dateComponents([.month, .day, .hour], from: Calendar.current.startOfDay(for: self))
comp.month = 1
comp.day = -1
return Calendar.current.date(byAdding: comp, to: self.startOfMonth()!)
}
}
我的結構:
struct Constants{
// keys required for making a Login call (POST Method)
struct LoginKeys {
.....
}
struct RankingKeys {
static let DateFrom = String(describing: Date().startOfMonth()) //giving me 2016-11-30 16:00:00 +0000
static let DateTo = String(describing: Date().endOfMonth())
//2016-12-30 16:00:00 +0000
}
}
預期結果:
DateFrom = "01/12/2016"
DateTo = "31/12/2016"
可能是時區問題。 –
即使日期是錯誤的。開始日期應爲12月的第一天,結束日期應爲31日,但產出不同 – ASN
您的代碼沒問題。您在當地時間獲得正確的值。請學習如何閱讀記錄日期對象的輸出。注意輸出中的時區。 – rmaddy