xcode 如何快速转换日期 yyyy-mm-dd'T'HH:mm:ss.SSSZ

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/52275065/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 10:45:38  来源:igfitidea点击:

How to convert date yyyy-mm-dd'T'HH:mm:ss.SSSZ in swift

iosiphoneswiftxcodedateformatter

提问by Sankalap Yaduraj Singh

I am convert date from "yyyy-mm-dd'T'HH:mm:ss.SSSZ"to "dd-mm-yyyy"and my date is "2018-09-11T09:53:25.000+0000"and this is my code

我将日期从“yyyy-mm-dd'T'HH:mm:ss.SSSZ”转换“dd-mm-yyyy”,我的日期是“2018-09-11T09:53:25.000+0000”,这是我的代码

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-mm-dd'T'HH:mm:ss.SSSZ"

let dateFromInputString = dateFormatter.date(from: "2018-09-11T09:53:25.000+0000")

dateFormatter.dateFormat = "dd-mm-yyyy"

if(dateFromInputString != nil){
   return dateFormatter.string(from: dateFromInputString!)
}
else{
   debugPrint("could not convert date")
   return "N/A"
}

but i am getting converted date 11-23-2018like this

但我正在逐渐转换日期2018年11月23日这样的

But my aspect is 11-09-2018

但我的方面是11-09-2018

回答by Rakesha Shastri

Your dateFormatis wrong. The ambiguity in your format should have been clear when you used 'mm' for bothmonths and minutes.

dateFormat错的。当您月份和分钟中使用“mm”时,格式中的歧义应该已经很清楚了。

dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"

mm - minutes

mm - 分钟

MM - months

MM——月

The same goes for the second date format too.

第二种日期格式也是如此。



Refer thisfor more information on date formats.

请参阅有关日期格式的详细信息。

回答by Nikunj Kumbhani

Try this

尝试这个

 func GetFormatedDate(date_string:String,dateFormat:String)-> String{

    let dateFormatter = DateFormatter()
    dateFormatter.locale = Locale(identifier: "en_US_POSIX")
    dateFormatter.dateFormat = dateFormat

    let dateFromInputString = dateFormatter.date(from: date_string)
    dateFormatter.dateFormat = "dd-MM-yyyy" // Here you can use any dateformate for output date
    if(dateFromInputString != nil){
        return dateFormatter.string(from: dateFromInputString!)
    }
    else{
        debugPrint("could not convert date")
        return "N/A"
    }
}

Use Like this :

像这样使用:

self.GetFormatedDate(date_string: "2018-09-11T09:53:25.000+0000", dateFormat: "yyyy-MM-dd'T'HH:mm:ss.SSSZ")

Output :

输出 :

11-09-2018

回答by Bhavin Kansagara

should be

应该

dateFormatter.dateFormat = "dd-MM-yyyy"

Try it

尝试一下

回答by Denis

Your dateFormater is wrong it should be yyyy-MM-dd'T'HH:mm:ss.SSSZnot this yyyy-mm-dd'T'HH:mm:ss.SSSZ

你的 dateFormater 错了,应该yyyy-MM-dd'T'HH:mm:ss.SSSZ不是这个yyyy-mm-dd'T'HH:mm:ss.SSSZ

dateFormatter.dateFormat = "dd-mm-yyyy"

dateFormatter.dateFormat = "dd-mm-yyyy"

to

dateFormatter.dateFormat = "dd-MM-yyyy"

dateFormatter.dateFormat = "dd-MM-yyyy"

回答by Jogendar Choudhary

Try this:

尝试这个:

   extension String {

        func convertDate() -> String {
            let dateFormatter = DateFormatter()
            dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"

            if let dateInLocal = dateFormatter.date(from: self) {
                dateFormatter.dateFormat = "dd-MM-yyyy"
                return dateFormatter.string(from: dateInLocal)
            }
            return "NA"
        }

    }

回答by Sankalap Yaduraj Singh

let dateFormatter = DateFormatter()
 dateFormatter.locale = Locale(identifier: "en_US_POSIX")
 dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"

 let dateFromInputString = dateFormatter.date(from: "2018-09-11T09:53:25.000+0000")

 dateFormatter.dateFormat = "dd-MM-yyyy"

 if(dateFromInputString != nil){
     return dateFormatter.string(from: dateFromInputString!)
 }
 else{
     debugPrint("could not convert date")
     return "N/A"
 }