如何在 swift 中以年、日格式显示秒数

How to display seconds in year, day format in swift

我需要做的就是更改 xcode 显示我的值的方式。我的代码当前以分钟为单位显示某些东西的年龄,例如 4503mint。我希望能够以以下格式显示这些值 3 天 3 小时 3 分钟而不是 4503 分钟。非常感谢您的帮助。问候

你当然可以自己计算(即天=秒/(3600*24)等),你也可以看看NSDateComponentsFormatter,这可能正是你要找的功能,几乎没有编码工作。

你可以自己计算或者做这样的事情:

let mySeconds = 700000
let date = NSDate(timeIntervalSinceNow: mySeconds) // difference to now
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = NSDateFormatter.dateFormatFromTemplate("yyyy.MM.dd", options: 0, locale:     NSLocale.currentLocale())
dateFormatter.stringFromDate(date)

你说:

My code currently displaying the age of something in minutes e.g 4503mint . I want to be able to display these values in the following format 3 days 3 hours 3 mint rather than 4503 mint.

您可以使用 NSDateComponentsFormatter 对其进行格式化。只需将分钟数乘以 60 即可得到 NSTimeInterval,然后您可以将其提供给格式化程序:

let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = .Full

let minutes = 4503
let timeInterval = NSTimeInterval(minutes * 60)
print(formatter.stringFromTimeInterval(timeInterval))

这将产生“3 天 3 小时 3 分钟”(或适合该设备语言环境的任何格式)。

有关详细信息,请参阅 NSDateComponentsFormatter Reference