当前位置: 首页 > 面试题库 >

DateFormatter不返回“ HH:mm:ss”的日期

柯昆杰
2023-03-14
问题内容

这是代码摘录:

func mapping(map: Map) {
    time      <- (map["time"], TransformOf<Date, String>(fromJSON: {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "HH:mm:ss"
        //dateFormatter.timeZone = TimeZone(abbreviation: "EEST")
        if let argument = $0 {
            let date = dateFormatter.date(from: argument)
            return dateFormatter.date(from: argument)
        }
        return nil
        }}

$0是的字符串"22:12:00"。我输入“ let
date”以查看返回的内容,并且为零。我在这里查找格式代码:http : //waracle.net/iphone-
nsdateformatter-date-formatting-table/

代码应该实际工作。我究竟做错了什么?

编辑 :添加了整个功能

EDIT2 :我刚刚注意到它在iPhone 7 iOS 10.1模拟器上可以正常工作,但在iPod 10.1.1(2016)上返回nil。太奇怪了


问题答案:

从技术问答QA1480 –
NSDateFormatter和Internet日期
(强调):

另一方面,如果您使用固定格式的日期,则应 首先将日期格式器的语言环境设置为适合您的固定格式的语言环境。 在大多数情况下,最佳选择的语言环境是“
en_US_POSIX”,该语言环境专门设计用于产生美式英语结果,无论用户和系统偏好如何。

这将防止根据用户的区域设置来解释日期:

let dateFormatter = DateFormatter()
// Set the locale first ...
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
// ... and then the date format:
dateFormatter.dateFormat = "HH:mm:ss"

// ...


 类似资料:
  • 我有一个python脚本,它将我的一些约会同步到两个不同的谷歌账户,两个账户都有一个谷歌日历,显然设置相同(时区设置也相同),在调用下载约会列表的时候然而,在日历上,调用返回具有不同日期格式的约会,具体取决于我要查询的日历。 使用的库是google开发的库(使用的Python版本是3.6) 脚本(在两种情况下都在同一台计算机上运行)如下所示: 我想这是一些关于日历配置的问题,但是我在设置中没有找到

  • 问题内容: 我有一个包含表的MySQL数据库。 但是,我找不到在Java中将其作为Java中某种对象返回的方法。 我可以打电话给它,它会返回,但这并不好,因为没有办法比较字符串上的日期等。 我也可以打电话,但这根本不返回时间。 问题答案: 您需要使用Thomas的注释中建议的getTime()或getTimestamp()方法。举个例子… 说出要查询的表格,如下所示: 您可以这样做: 如果要使用J

  • 有人知道怎么解决这个问题吗? 编辑:

  • 我正在尝试使用LoggerHandler记录所有传入的请求。我在用logback。xml来指定appender。我正在为日志设置系统属性。 它仍然是记录一切在控制台不在文件中。

  • 1)to_date(sysdate,'dd MONTH yyyyy')这将给出没有时间的日期对象(可能是时间为00:00)。 我正确吗?如果不正确,我将如何只获得没有时间的日期对象? 2)从上面的查询来看,似乎_Date(sysdate,'yyyy/mm/dd')大于to_date(sysdate,'dd MONTH yyyyy')。为什么?? 更新 1)我在上面的URL中的目的是找出to_dat

  • 问题内容: 代码: 输出: 我正在尝试将字符串转换为NSDate数据类型,但没有获得正确的值。我尝试了许多解决方案,但未返回正确的值。我需要yyyy-MM- dd格式(2016-04-02)与我的输入“ 2016-04-02”相同。如果有人可以帮上忙,那真是太好了。提前致谢 问题答案: 从字符串转换为NSDate时,如果未将时区设置为格式化程序,则将获得本地时区中日期的NSDate。我想您的时区是