将字符串转换为日期在swift 3中不相同
为什么??我把字符串转换成日期,输入和输出不一样吗将字符串转换为日期在swift 3中不相同,swift,Swift,为什么??我把字符串转换成日期,输入和输出不一样吗 Input: let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd" dateLahir = formatter.date(from: "2017-10-05") print("date: \(dateLahir)") Output: date: 2017-10-04 在Swift 3中 将日期转换为字符串 class func convertDateT
Input:
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
dateLahir = formatter.date(from: "2017-10-05")
print("date: \(dateLahir)")
Output:
date: 2017-10-04
在Swift 3中 将日期转换为字符串
class func convertDateToString(_ dateStr: String?, fromDateFormat currentFormat: String, toDateFormat newFormat: String) -> String? {
if dateStr == nil {
return nil
}
let formatter:DateFormatter = DateFormatter()
formatter.dateFormat = currentFormat
let date = formatter.date(from: dateStr!)
if date == nil {
return ""
}
formatter.dateFormat = newFormat
let newStr: String = formatter.string(from: date!)
return newStr
}
将字符串转换为日期
class func convertStringToDate(_ strDate: String, dateFormat: String) -> Date? {
let formatter: DateFormatter = DateFormatter()
formatter.dateFormat = dateFormat
formatter.timeZone = TimeZone.autoupdatingCurrent
let date = formatter.date(from: strDate)
return date;
}
显示
打印(“date:\(dateLahir)”)的实际完整输出。
。顺便说一句,您的代码很好。您只需了解打印Date
对象的输出。日期格式化程序将使用当前时区转换日期字符串,而print
通常以GMT显示等效的日期/时间(您将在末尾看到一个+0000
,这就是为什么rmaddy要求共享print
语句中的完整字符串)。总之,不要担心时区print
会使用什么。在转换到日期对象和从date
对象转换时始终使用日期格式化程序(例如,如果在应用程序中显示日期,请使用DateFormatter
构建字符串以显示最终用户)。@Rob是正确的。只需添加:let stringDate=formatter.string(from:dateLahir!)打印(“字符串日期:\(stringDate)”)
您将获得正确的日期。我想将日期保存在数据库中,但我从datepicker选择的日期是正确的,并且我在textfield中转换了日期。结果显示为上一个日期。请解释我的编码中是否缺少任何内容此示例编码将字符串转换为日期变量dateLate:date!让formatter=DateFormatter()formatter.dateFormat=“yyyy-MM-dd”dateLahir=formatter.date(起始日期:“2017-10-05”)