我正在将服务器的日期解析为自定义格式: - 这是日期: - “8/9/2017 3:58:00 AM”但它没有使用这种格式“MM / dd / yyyy hh:mm:ss a”解析为Date对象,因为显然是月,日和小时是个位数
据我所知,它应该自动解析,因为Android的DateFormat会解析相同的日期。 这是我正在使用的代码片段: -
display: grid
此函数返回null
答案 0 :(得分:0)
您的代码应该可以使用,但您还应该添加一些错误检查。
试试这个(它将在Playground中运行):
// returns an empty string "" if the date format is invalid
func getDateString(_ dateString:String) -> String {
var strResult = ""
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "M/dd/yyyy hh:mm:ss a"
if let date = dateFormatter.date(from: dateString) {
dateFormatter.dateFormat = "dd MMM yyyy"
strResult = dateFormatter.string(from: date)
}
return strResult
}
let dateString = getDateString("8/9/2017 3:58:00 AM")
print(dateString) // prints "09 Aug 2017"
如果您将“源”字符串更改为无效的日期/时间 - 例如将月份从8 to 18
更改为小时或从3 to 13
更改小时 - 您将看到返回的值为空字符串。