Convert Date String to Int Swift

后端 未结 3 1355
时光取名叫无心
时光取名叫无心 2021-01-19 14:39

I am trying to convert the string:

let time = \"7:30\"

to integers:

let hour : Int = 7
let minutes : Int = 30
相关标签:
3条回答
  • 2021-01-19 15:19

    Use String.componentsSeparatedByString to split time string to parts:

    import Foundation
    
    let time = "7:30"
    let timeParts = time.componentsSeparatedByString(":")
    
    if timeParts.count == 2 {
        if let hour = Int(timeParts[0]),
            let minute = Int(timeParts[1]) {
                // use hour and minute
        }
    }
    

    If you do not want to import Foundation you can split time string to parts with:

    let timeParts = time.characters.split(":").map(String.init)
    
    0 讨论(0)
  • 2021-01-19 15:21

    You can split string by : character and then convert results to Int:

    let timeStringArray = time.componentsSeparatedByString(":")
    if timeStringArray.count == 2 {
       hour = timeStringArray[0].toInt
       minutes = timeStringArray[1].toInt()
    }
    
    0 讨论(0)
  • 2021-01-19 15:24

    Answers by @alex_p and @mixel are correct, but it's also possible to do it with Swift split function:

    let time = "7:30"
    let components = time.characters.split { $0 == ":" } .map { (x) -> Int in return Int(String(x))! }
    
    let hours = components[0]
    let minutes = components[1]
    
    0 讨论(0)
提交回复
热议问题