首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Swift中的日期格式

Swift中的日期格式
EN

Stack Overflow用户
提问于 2016-02-29 21:02:20
回答 22查看 391.2K关注 0票数 234

如何从日期转换此日期时间?

来自这里的

:2016-02-29 12:24:26

发送至: Feb 29,2016

到目前为止,这是我的代码,它返回一个nil值:

代码语言:javascript
复制
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
dateFormatter.timeZone = NSTimeZone(name: "UTC")
let date: NSDate? = dateFormatter.dateFromString("2016-02-29 12:24:26")
print(date)
EN

回答 22

Stack Overflow用户

回答已采纳

发布于 2016-02-29 21:08:44

您必须声明两个不同的NSDateFormatters,第一个用于将字符串转换为NSDate,第二个用于以您的格式打印日期。

尝试以下代码:

代码语言:javascript
复制
let dateFormatterGet = NSDateFormatter()
dateFormatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss"

let dateFormatterPrint = NSDateFormatter()
dateFormatterPrint.dateFormat = "MMM dd,yyyy"

let date: NSDate? = dateFormatterGet.dateFromString("2016-02-29 12:24:26")
print(dateFormatterPrint.stringFromDate(date!))

Swift 3及更高版本:

从Swift 3开始,NSDate类已更改为DateNSDateFormatter更改为DateFormatter

代码语言:javascript
复制
let dateFormatterGet = DateFormatter()
dateFormatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss"

let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "MMM dd,yyyy"

if let date = dateFormatterGet.date(from: "2016-02-29 12:24:26") {
    print(dateFormatterPrint.string(from: date))
} else {
   print("There was an error decoding the string")
}
票数 360
EN

Stack Overflow用户

发布于 2018-09-12 22:24:52

这对于那些想要使用dateformater.dateformat的人可能很有用;

如果你想要12.09.18,你可以使用dateformater.dateformat = "dd.MM.yy"

代码语言:javascript
复制
Wednesday, Sep 12, 2018           --> EEEE, MMM d, yyyy
09/12/2018                        --> MM/dd/yyyy
09-12-2018 14:11                  --> MM-dd-yyyy HH:mm
Sep 12, 2:11 PM                   --> MMM d, h:mm a
September 2018                    --> MMMM yyyy
Sep 12, 2018                      --> MMM d, yyyy
Wed, 12 Sep 2018 14:11:54 +0000   --> E, d MMM yyyy HH:mm:ss Z
2018-09-12T14:11:54+0000          --> yyyy-MM-dd'T'HH:mm:ssZ
12.09.18                          --> dd.MM.yy
10:41:02.112                      --> HH:mm:ss.SSS

以下是替代方案:

  • 纪元:g (AD),GGGG (Anno Domini)
  • 年份:y (2018),yy (18),yyyy (2018)
  • 月份: M,MM,MM,MMMM
  • 月份: d,dd
  • 星期名称: E,EEEE,EEEE,EEEE
票数 410
EN

Stack Overflow用户

发布于 2017-04-16 15:44:51

Swift - 5.0

代码语言:javascript
复制
let date = Date()
let formate = date.getFormattedDate(format: "yyyy-MM-dd HH:mm:ss") // Set output formate

extension Date {
   func getFormattedDate(format: String) -> String {
        let dateformat = DateFormatter()
        dateformat.dateFormat = format
        return dateformat.string(from: self)
    }
}

Swift - 4.0

2018-02-01T19:10:04+00:00转换2018年2月01日

代码语言:javascript
复制
extension Date {
    static func getFormattedDate(string: String , formatter:String) -> String{
        let dateFormatterGet = DateFormatter()
        dateFormatterGet.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"

        let dateFormatterPrint = DateFormatter()
        dateFormatterPrint.dateFormat = "MMM dd,yyyy"

        let date: Date? = dateFormatterGet.date(from: "2018-02-01T19:10:04+00:00")
        print("Date",dateFormatterPrint.string(from: date!)) // Feb 01,2018
        return dateFormatterPrint.string(from: date!);
    }
}
票数 76
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35700281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档