如何在Swift3中以秒为单位更改字符串?

时间:2017-10-19 13:49:12

标签: ios swift3 xcode8.2

嗨,我将时间值作为字符串。我得到的数字是秒。现在我想通过使用swift3将秒转换为分钟。

我得到的秒数是: 540这是在几秒钟内。

现在我想将秒转换为分钟。 例如,它应显示为09:00。

如何使用Swift3代码实现此目的。 目前我没有使用任何转换代码。

let duration: TimeInterval = 7200.0

let formatter = DateComponentsFormatter()
formatter.unitsStyle = .positional // Use the appropriate positioning for the current locale
formatter.allowedUnits = [ .hour, .minute, .second ] // Units to display in the formatted string
formatter.zeroFormattingBehavior = [ .pad ] // Pad with zeroes where appropriate for the locale

let formattedDuration = formatter.string(from: duration) 

3 个答案:

答案 0 :(得分:2)

这是一种方法:

let duration: TimeInterval = 540

// new Date object of "now"
let date = Date()

// create Calendar object
let cal = Calendar(identifier: .gregorian)

// get 12 O'Clock am
let start = cal.startOfDay(for: date)

// add your duration
let newDate = start.addingTimeInterval(duration)

// create a DateFormatter
let formatter = DateFormatter()

// set the format to minutes:seconds (leading zero-padded)
formatter.dateFormat = "mm:ss"

let resultString = formatter.string(from: newDate)

// resultString is now "09:00"

// if you want hours
// set the format to hours:minutes:seconds (leading zero-padded)
formatter.dateFormat = "HH:mm:ss"

let resultString = formatter.string(from: newDate)

// resultString is now "00:09:00"

如果您希望将持续时间(以秒为单位)格式化为"时间,"将格式字符串更改为:

formatter.dateFormat = "hh:mm:ss a"

现在,结果字符串应为:

"12:09:00 AM"

当然,这会因地区而异。

答案 1 :(得分:1)

考虑使用Swift Moment框架:https://github.com/akosma/SwiftMoment

let duration: TimeInterval = 7200.0
let moment = Moment(duration)
let formattedDuration = "\(moment.minutes):\(moment.seconds)"

答案 2 :(得分:0)

您可以使用:

on_post