无法快速更改旧日期格式的新日期格式?

Posted

技术标签:

【中文标题】无法快速更改旧日期格式的新日期格式?【英文标题】:Unable to change new date format from older one in swift? 【发布时间】:2017-08-03 12:05:27 【问题描述】:

在代码中,我试图从旧格式更改新的日期格式,但无法做到这一点,它崩溃并显示“致命错误:在展开可选值时意外发现 nil”但我找不到原因请帮忙找原因。

这里我给出我尝试过的代码..

let dateString:String = (historyRequestArray[indexPath.row] as AnyObject).value(forKey: "date") as! String
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
        let dateObj = dateFormatter.date(from: dateString)
        dateFormatter.dateFormat = "dd-MMM-yyyy"
        let finalDateStr:String = dateFormatter.string(from: dateObj!)

dateString 有值.. dateString 为:2017-08-02 14:09:22

现在的格式是:"yyyy-MM-dd hh:mm:ss"

但我想转换为:"dd-MMM-yyyy"

请帮我解决问题。 谢谢大家。

【问题讨论】:

似乎当前日期格式是 yyyy-MM-dd HH:mm:ss 我认为let dateObj = dateFormatter.date(from: dateString) 失败,当您强制解开dateObj 时,您的代码会崩溃。 我认为你的 dateString 将是空的,如果 let 并检查你的 dateString 是否为空,你的代码是否正常。 在使用用于转换的日期格式化程序时,您应该使用语言环境EN_US_POSIX 【参考方案1】:

我认为你的日期格式化程序是错误的,所以那里提出了问题。

let dateString:String = (historyRequestArray[indexPath.row] as AnyObject).value(forKey: "date") as! String
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" //change formatter like this.
let dateObj = dateFormatter.date(from: dateString)
dateFormatter.dateFormat = "dd-MMM-yyyy"
let finalDateStr:String = dateFormatter.string(from: dateObj!)

【讨论】:

@B.SaravanaKumar 如果您发现答案有用,您可以接受它,以便其他用户可以直接找到。【参考方案2】:

将日期格式更改为“yyyy-MM-dd HH:mm:ss”

let dateString:String = (historyRequestArray[indexPath.row] as AnyObject).value(forKey: "date") as! String
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateObj = dateFormatter.date(from: dateString)
dateFormatter.dateFormat = "dd-MMM-yyyy"
let finalDateStr:String = dateFormatter.string(from: dateObj!)

【讨论】:

【参考方案3】:

下面粘贴了一些日期格式,您可以在其中将几个小时从“hh”更改为“HH”。

因此,如果您将代码更改为以下代码,您的日期格式化程序将起作用。

let dateString:String = (historyRequestArray[indexPath.row] as AnyObject).value(forKey: "date") as! String
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateObj = dateFormatter.date(from: dateString)
dateFormatter.dateFormat = "dd-MMM-yyyy"
let finalDateStr:String = dateFormatter.string(from: dateObj!)

【讨论】:

谢谢兄弟的帮助。

以上是关于无法快速更改旧日期格式的新日期格式?的主要内容,如果未能解决你的问题,请参考以下文章

无法更改日期格式 SQL

为啥 jQuery Datepicker 无法更改日期格式?

Openoffice-calc 无法更改列的日期格式

无法在php中更改日期格式[重复]

无法在 ext js 6.0.1 中更改类型日期格式

excel如何修改日期格式