将日期字符串转换为所需的日期格式,输出为nil

巴尔加夫

我正在尝试以以下格式将日期显示到tableview单元格中

1996.July.10 12:08 PM 使用这种模式 yyyy.MMMM.dd hh:mm aaa

我来自api的实际日期格式是这种格式 2019-12-16T05:33:43Z

这是我用于转换的代码

if let dateString: String = articleListVM.articles[indexPath.row].publishedAt {
            print(dateString)
            let dateFormatter = DateFormatter()
            dateFormatter.locale = Locale(identifier: "en_US_POSIX")
            dateFormatter.dateFormat = "yyyy.MMMM.dd hh:mm aaa"
            let date = dateFormatter.date(from: dateString)
            print("date: \(String(describing: date))")
        }

现在我得到这样的输出

2019-12-16T05:33:43Z
date: nil

我不确定自己做错了什么错误,请检查一下。

马丁

您指定的日期格式存在一个小问题。您的日期格式实际上应该是:

yyyy-MM-dd'T'HH:mm:ssZ

因此,将代码更改为:

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

输出:

date: Optional(2019-12-16 05:33:43 +0000)

在评论中编辑来自OP的以下更多信息

为了将一种格式的字符串转换为日期,然后转换为另一种日期格式,您需要两个DateFormatters。下面将转换原始字符串日期,然后将日期输出为另一种格式:

let dateString: String = "2019-12-16T05:33:43Z"
print(dateString)

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
if let date = dateFormatter.date(from: dateString)
{
  print("date: \(String(describing: date))")

  let outputFormatter = DateFormatter()
  outputFormatter.locale = Locale(identifier: "en_US_POSIX")
  outputFormatter.dateFormat = "yyyy.MMMM.dd hh:mm aaa"
  let outputDate = outputFormatter.string(from: date)
  print("date: \(String(describing: outputDate))")
}

输出:

2019-12-16T05:33:43Z
date: 2019-12-16 05:33:43 +0000
date: 2019.December.16 05:33 AM

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Unity C#以所需的日期时间格式将日期字符串转换为datetime对象

在 Kotlin 中将日期字符串转换为所需的格式

将日期字符串转换为JSON日期格式

将字符串日期转换为ISO格式日期

将日期(字符串)转换为日期时间格式

如何将jquery中的日期字符串转换为所需格式

将字符串'01011900'或'19990101'或任何格式转换为日期并以所需格式'01 / 01/1990'转换

将字符串转换为日期返回nil

将日期格式的字符串转换为其他日期格式的字符串

将日期格式转换为Pandas中的字符串

JQuery:将字符串转换为日期格式

将字符串转换为日期格式

将“ YYYYMMDDHHMMSS”格式的字符串转换为日期时间

将日期字符串转换为其他格式

如何将字符串转换为日期格式

ParseExact 将字符串转换为日期格式

将pyspark字符串转换为日期格式

将字符串转换为特定格式的日期

将日期字符串转换为正确的格式

将字符串格式 Date(1528822800000) 转换为日期

将GMT格式的字符串转换为日期时间

将字符串转换为日期时间格式

将字符串转换为日期以提供不同的格式

将字符串转换为日期格式?

将日期字符串转换为DateTime格式

将字符串转换为不同的日期时间格式

将字符串日期转换为不同格式的字符串日期

将日期字符串转换为其他格式的日期字符串

将DataFrame列类型从字符串转换为日期时间,格式为dd / mm / yyyy