【发布时间】:2020-02-07 08:47:22
【问题描述】:
虽然我已经检查了有关如何获取创建日期的其他答案,但这对我来说似乎并不奏效。
这就是我提取创建日期的方式。
class func extractFileCreatedDate(filepath: String) -> String{
var dateString = ""
do{
let aFileAttributes = try FileManager.default.attributesOfItem(atPath: filepath) as [FileAttributeKey:Any]
let theCreationDate = aFileAttributes[FileAttributeKey.creationDate] as? Date ?? Date()
let formatter: DateFormatter = DateFormatter()
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale?
formatter.timeZone = TimeZone.init(abbreviation: "GMT")
formatter.dateFormat = "MM/dd/yyyy HH:mm:ss"
//MARK:- Share App Submit Date
if let readDate:String = formatter.string(from: theCreationDate){
dateString = readDate
}
} catch let theError as Error{
print("file not found \(theError)")
}
return dateString
}
所以我通过打印得到的响应是:
如果我在本地存储中检查此文件的创建日期不同:
在调试中,我得到的是当前日期而不是创建日期:
如果我做错了什么,请建议我。我期待的是它应该返回相同的创建日期。或者我可能遗漏了什么,请帮帮我。
谢谢!
【问题讨论】:
-
我运行了您的代码,它在我的测试中返回了正确的创建日期。 – 只有调试器输出错误,还是返回值也错误?并且(很抱歉问这个显而易见的问题)您是否三次检查它是否是正确的文件?
-
是的,我总是弄错日期。应该可以的,不知道怎么回事。我只有一个本地文件,并一次又一次地检查它。即使我也很确定,它会返回正确的创建日期。但它没有。请参考截图,编辑问题。
-
@RenukaPandey 为什么要更改区域设置和时区,有什么原因吗?尝试仅使用格式
-
@guru:使用locale是要求的一部分,但在应用格式和locale之前,创建日期仍然是当前日期,您可以参考附件截图。
标签: ios swift nsfilemanager