【问题标题】:Format String to HH:mm in Swift在 Swift 中将字符串格式化为 HH:mm
【发布时间】:2015-11-30 02:09:59
【问题描述】:

我的代码:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let date = dateFormatter.dateFromString("2015-09-01 00-32-40")

结果:2015-08-31 17:32:40

但我想得到这样的结果:17:32。如何解决?

【问题讨论】:

    标签: ios swift date time format


    【解决方案1】:

    如果您尝试获取NSDate 而不是字符串表示,则打印NSDate 将始终显示完整的日期时间。要仅显示小时和分钟,您必须使用“HH:mm”日期格式创建字符串表示,例如:

    // Your original code
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
    let date = dateFormatter.dateFromString("2015-09-01 00-32-40")
    
    // To convert the date into an HH:mm format
    dateFormatter.dateFormat = "HH:mm"
    let dateString = dateFormatter.stringFromDate(date!)
    println(dateString)
    

    不确定您为什么要获得“17:32”的结果,但这会从字符串的原始“00-32”部分产生“00:32”。

    【讨论】:

    • 我在问之前使用这个:let dateFormatter = NSDateFormatter(); dateFormatter.dateFormat = "HH:mm";让日期 = dateFormatter.dateFromString("2015-09-01 00-32-40");让 dateString = dateFormatter.stringFromDate(date!);它不起作用,现在添加行: dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 然后它工作正常;唔。真奇怪!对不起,错误的“17:32”和“00:32”
    • @rome 是的,因为您尝试使用不完整的格式从字符串创建 date,然后尝试转换该日期(始终为完整日期时间格式) 转换成一个字符串,假设原始格式仍然保持不变。
    • 非常感谢!
    • 非常全面的答案
    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 2016-01-28
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2017-03-20
    相关资源
    最近更新 更多