我正在过去" 01/12 / 2017"在fromDate.text(textfield)中,但是接收到意外的输出。
let formatter = DateFormatter.init()
formatter.dateFormat = "dd/mm/yyyy"
startDate = formatter.date(from: fromDate.text!)
print("startDate = \(startDate)")
输出是:2016年12月31日
答案 0 :(得分:8)
日期格式应为dd/MM/yyyy
而不是dd/mm/yyyy
。 mm
表示分钟,MM
表示月份。
并在代码中添加以下行
formatter.timeZone = TimeZone(abbreviation: "GMT+0:00")
这行代码设置时区。如果不是,那么输出中会得到30/11/2017
。
这背后的原因是当字符串日期不包含时间时格式化程序会假设它是午夜而你也没有给出时区所以它将占用当前时区。
答案 1 :(得分:3)
必须是dd/MM/yyyy
dateformat。 MM
在首都。{/ p>
答案 2 :(得分:0)
func convertToString(of dateTo: Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy" //Your New Date format as per requirement change it own
let newDate: String = dateFormatter.string(from: dateTo) //pass Date here
print(newDate) //New formatted Date string
return newDate
}