swift - 如何将日期从上午/下午转换为 24 小时格式

标签 swift date dateformatter

事情是这样的。 我的 iPhone 格式为上午/下午格式,iPhone 语言为西类牙语 (MX)。 当我询问日期时,我得到类似 2018-03-21 5:14:59 a 的信息。米。 +0000 是日期类型,然后我尝试将其转换为 24 小时格式的字符串,我得到类似 2018-03-20 23:14:59 的字符串类型,但是当我尝试将该字符串转换为日期,我再次以 am/pm 格式获得相同的日期 2018-03-21 5:14:59 a。米。 +0000 我不知道还能做什么,我只想将我的上午/下午日期转换为 24 小时日期而不是字符串。 请帮帮我。 这是我在 Swift 4 中的代码

    let todayDate = Date()
    print("todayDate: \(todayDate)")
    let dateFormatter = DateFormatter()
    dateFormatter.locale = Locale(identifier: "en_US_POSIX")
    dateFormatter.dateFormat = "yyyy-MM-dd' 'HH:mm:ss"
    let stringDate = dateFormatter.string(from: todayDate)
    print("stringDate: \(stringDate)")
    let dateFromString = dateFormatter.date(from: stringDate)
    print("dateFromString: \(dateFromString!)\n\n\n")

这是我的控制台结果

    todayDate: 2018-03-21 5:14:59 a. m. +0000
    stringDate: 2018-03-20 23:14:59
    dateFromString: 2018-03-21 5:14:59 a. m. +0000

最佳答案

all I want is convert my am/pm date to 24hours date NOT STRING

这不是 Date 的工作方式。

From the Documentation

Date values represent a time interval relative to an absolute reference date.

Date 只是自引用日期以来的时间段的容器,它本身不携带任何格式信息。

let dateFromString = dateFormatter.date(from: stringDate)
print("dateFromString: \(dateFromString!)\n\n\n")

只是将 stringDate(在您的示例中为 2018-03-20 23:14:59)转换回 Date 对象和 print 正在使用 Datedescription 实现来为您提供有关其当前值的信息

所以,如果我们改为添加...

print("dateFromString: \(dateFormatter.string(from: dateFromString!))\n\n\n")

它将打印 2018-03-21 16:44:17

你最好的选择是不在乎。只需将值放在 Date 对象中并将其格式化为 String 当您需要将其显示给用户或需要格式化时 - 这就是格式化程序的意义所在

关于swift - 如何将日期从上午/下午转换为 24 小时格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49398852/

相关文章:

swift - 3 天内的 UserNotification 然后每天/每小时重复一次 - iOS 10

ios - 导航栏搜索 View

ios - Firebase 身份验证和 Swift : Check if email already in database

Windows 中的 Java : files in a directory ordered with a specific name

java - 在 Spring Boot 中接受阿拉伯日期作为查询参数

swift - 如何使用 Swift 中的 Codable 转换带有可选小数秒的日期字符串?

ios - UICollectionView - Swift4 在不同部分的多选和单选

python - 获取python中两个日期之间的所有年份

ios - 仍然对 Swift DateFormatter 和 .dateFormat 效率感到困惑

mysql - 无法获取 180 天的 SQL 日期来工作