Swift - 将字符串转换为日期,返回正确日期前一天

标签 swift xcode date dateformatter

我正在尝试将日期字符串转换为 Swift 中的日期。我的日期字符串返回为:

“2020年5月28日”

我有这个方法:

    private func getDate(date: String) -> Date? {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd/MM/yyyy"
    return dateFormatter.date(from: date)
}

但它正在返回:

Optional(2020-05-27 23:00:00 +0000)

为什么返回的是 27 号而不是 28 号?

最佳答案

试试这个,它会起作用

func convertStringintoDate(dateStr:String, dateFormat format:String) -> Date{
    let dateFormatter = DateFormatter()
    dateFormatter.locale = Locale.init(identifier:"en_US_POSIX")
    dateFormatter.timeZone = TimeZone.init(abbreviation: "GMT")
    dateFormatter.dateFormat = format
    if let startDate = dateFormatter.date(from: dateStr){
        return startDate as Date
    }
    return Date() as Date
}

像这样调用这个函数:-

 print(convertStringintoDate(dateStr: "28/05/2020", dateFormat: "dd/MM/yyyy"))

关于Swift - 将字符串转换为日期,返回正确日期前一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62067952/

相关文章:

ios - 如何在另一个 .swift 文件中调用变量属性?

ios - Swift 4 覆盖 func viewDidAppear(_ 动画 : Bool) not triggering when i dissmiss viewcontroller

ios - Appcode - 选择当前文件

Javax 验证约束 - 比较两个日期

mysql - 使用mysql计算从特定日期起一年中剩余的天数

swift - 如何在 Swift 3 中保存 UITableViewCell 附件复选标记的状态

swift - 使用 Swift 和 iOS8 调用和控制振动

ios - 无法让 UIImageView 在 prepareForSegue 中发送

ios - 从另一个 View Controller 访问元素出现 nil

JavaScript - 将时间戳转换为日期,然后转换回时间戳