swift2 使用Swift 2将字符串转换为NSDate

kdfy810k  于 2022-11-06  发布在  Swift
关注(0)|答案(2)|浏览(216)

我正在尝试将字符串转换为NSDate以下是我的代码

let strDate = "2015-11-01T00:00:00Z" // "2015-10-06T15:42:34Z"
     let dateFormatter = NSDateFormatter()
     dateFormatter.dateFormat = "yyyy-MM-ddTHH:mm:ssZ"
    print ( dateFormatter.dateFromString( strDate ) )

结果我一直得到nil

eqqqjvef

eqqqjvef1#

格式字符串中的“T”需要用单引号引起来,这样它就不会被视为符号:
雨燕3.0

let strDate = "2015-11-01T00:00:00Z"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = dateFormatter.date(from:strDate)
print("date: \(date!)")

输出量:
日期:2015年11月1日00:00:00 + 0000
斯威夫特2.x

let strDate = "2015-11-01T00:00:00Z"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = dateFormatter.dateFromString(strDate)
print("date: \(date!)")

输出量:
日期:2015年11月1日00:00:00 + 0000
请参阅:日期字段符号表。
这包括如果ASCII字母用于表示文字文本,则需要用单引号将其括起来。

nhaq1z21

nhaq1z212#

对于swift 4和swift 3.2,更新了答案。
这里提到所有Date相关函数。
希望这些函数对您有用。
1=〉时间戳到日期

func timeStampToDate(_timestamp : String, _dateFormat : String) -> String{

        var LOCAL_TIME_ZONE: Int { return TimeZone.current.secondsFromGMT() }

        var date = Date(timeIntervalSince1970: TimeInterval(_timestamp)!)
        date += TimeInterval(LOCAL_TIME_ZONE as NSNumber)
        let dateFormatter = DateFormatter()
        dateFormatter.timeZone = TimeZone(abbreviation: "GMT") //Set timezone that you want
        dateFormatter.locale = NSLocale.current
        dateFormatter.dateFormat = _dateFormat //Specify your format that you want
        let strDate = dateFormatter.string(from: date)
        return strDate
    }

2=〉日期转换为字符串

func DateToString(date : Date, dateFormatte : String) -> String {

        let dateFormatter = DateFormatter()

        dateFormatter.dateFormat = dateFormatte

        print("Dateobj: (dateFormatter.string(from: dateObj!))")

        return (dateFormatter.string(from: date as Date))

    }

3=〉到日期的字符串

func StringDateToDate(dateString : String, dateFormatte : String) -> Date {

        //let dateString = "Thu, 22 Oct 2015 07:45:17 +0000"

        //let dateFormatte = "EEE, dd MMM yyyy hh:mm:ss +zzzz"

        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = dateFormatte
        let dateObj = dateFormatter.date(from: dateString)
        if dateObj == nil {
            return Date()
        }
        return dateObj!
    }

相关问题