我如何在当前日期之前花费一定天数(带走一天)并以特定日期格式打印到控制台。
我目前正在使用:
print((Calendar.current as NSCalendar).date(byAdding: .day, value: -1, to: Date(), options: [])!)
将日期和时间打印为:
yyyy-MM-dd HH:MM:SS +0000
但我希望它打印如下:
DD-MM-YYYY
这一切都可能吗?
答案 0 :(得分:2)
最好将其分解为更容易阅读/维护的几行。首先,计算所需的日期,然后应用日期格式化程序。
let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: Date())
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
print(dateFormatter.stringFromDate(yesterday))
答案 1 :(得分:1)
swift 3.0版
let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: Date())
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
if let yesterday = yesterday {
print(dateFormatter.string(from: yesterday))
}else{
print("Date incorrectly manipulated")
}
答案 2 :(得分:0)
您不应该为Date
格式字符串使用固定格式。因为您可能有来自世界各地的用户,他们也不会以相同的方式查看日期。
相反,你应该使用模板格式。您只需指定要显示的组件及其顺序,如:
let dateFormatter = DateFormatter()
// dateFormatter.locale = Locale(identifier: "bn-BD") // Enable this line only at the time of your debugging/testing
dateFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "ddMMyyyy",
options: 0,
locale: dateFormatter.locale)
let date = Calendar.current.date(byAdding: .day, value: -1, to: Date())
if let date = date {
let dateString = dateFormatter.string(from: date)
print(dateString)
}
您不应该自己设置
locale
。它完成了 框架。您应该只在当时手动设置locale
测试你的应用程序。
在上面的示例中,我使用Locale
作为"bn-BD"
,这意味着孟加拉国的孟加拉国。您可以找到区域设置列表here