【问题标题】:How to format a Date from String in Swift 4 [duplicate]如何在 Swift 4 中从字符串格式化日期 [重复]
【发布时间】:2020-01-02 15:48:22
【问题描述】:

我有一个“createdAt”日期字符串,我想在 Swift 4 中格式化为 EEEE、MMM d、yyyy。

var createdAt:String = ""

还有一个格式化日期的函数

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

我可以使用这个函数来正确格式化今天的日期,如下所示:

let formatingDate = getFormattedDate(date: Date(), format: "EEEE, MMM d, yyyy")
Text(formatingDate)

但是我如何使它正确格式化我的“createdAt”字符串,而不仅仅是今天的日期?

【问题讨论】:

  • 首先将您的 createdAt 字符串转换为日期并将其传递给您的 getFormattedDate
  • createdAt 的来源是什么,你想分配给 createdAt 的值是什么类型的?
  • 您不能将空字符串格式化为任何日期。请添加源格式。
  • 这与 Core Data 有什么关系?

标签: swift date


【解决方案1】:

你需要

func getFormattedDate(str:String, format: String) -> String { 
    let dateformat = DateFormatter()
    dateformat.locale = Locale(identifier: "en_US_POSIX") 
    dateformat.dateFormat = "createAtForm"
    let dInpu = dateformat.date(from: str)!
    dateformat.dateFormat = format
    return dateformat.string(from:dInpu)
}

let formatingStr = getFormattedDate(str: createdAt, format: "EEEE, MMM d, yyyy") 

【讨论】:

  • 什么是 dInpu ?
  • 创建日期
  • 好的答案先生
  • 感谢您的快速答复!这就是我使用它的方式吗? let formatingDate = getFormattedDate(str: createdAt, format: "EEEE, MMM d, yyyy") Text(formatingDate) 可选类型“日期”的值?必须解包为“日期”类型的值
  • ok 重新复制答案并将createAtForm 更改为在字符串中创建的格式
猜你喜欢
  • 2012-01-07
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多