ios - 如何快速解决日历问题? (很高兴即使在 Objective-c 中也能看到)

标签 ios swift xcode date calendar

我使用了日历实例的几种方法。所以,isDateInToday()isDateInTomorrow()是对UI部分起作用的主要方法。今天我们使用 isDateInToday() (我的本地时间是 2019 年 8 月 28 日 21:37:00 ),它显示以下内容:

00:00 - 4:59 ()。这里 isDateInTomorrow() 显示 true

5:00 - 23:59(true)

日历标识符是公历

区域设置为en_US

时区为GMT (secondsFromGMT=0)

这是日历实例:

private var _calendar: Calendar = {
        var cal = Calendar.current
        cal.locale = Locale.current
        cal.timeZone = TimeZone(secondsFromGMT: 0)!
        return cal
    }()

这就是我创建日期的方式:

public var today: Date? {
        let date = Date()

        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        formatter.locale = .current
        let dateString = formatter.string(from: date)

        let formatterOut = DateFormatter()
        formatterOut.dateFormat = "yyyy-MM-dd HH:mm:ss"
        formatterOut.locale = Locale(identifier: "ru")
        formatterOut.timeZone = TimeZone(secondsFromGMT: 0)

        return formatterOut.date(from: dateString)
}

我该怎么做才能使其在今天 00:00 到 23:59 之间显示 true

最佳答案

嗯,我还没有找到确切的解决方案。但我已经做到了。我为今天和明天创建了两个日期实例。

...
let today = Date()
...
let tomorrow = calendar.date(byAdding: .day, value: 1, to: today)

这就是我对 isDateInToday()isDateInTomorrow() 的解决方案。我忽略了时间。

func isDateInToday(_ date: Date) -> Bool {
    let year = calendar.compare(date, to: today, toGranularity: .year)
    let month = calendar.compare(date, to: today, toGranularity: .month)
    let day = calendar.compare(date, to: today, toGranularity: .day)
    return (year == .orderedSame && month == .orderedSame && day == .orderedSame)
}

func isDateInTomorrow(_ date: Date) -> Bool {
    let year = calendar.compare(date, to: tomorrow, toGranularity: .year)
    let month = calendar.compare(date, to: tomorrow, toGranularity: .month)
    let day = calendar.compare(date, to: tomorrow, toGranularity: .day)
    return (year == .orderedSame && month == .orderedSame && day == .orderedSame)
}

关于ios - 如何快速解决日历问题? (很高兴即使在 Objective-c 中也能看到),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57696920/

相关文章:

ios - 如何添加文件组?

iphone - iPhone编程中的意外 float 行为?

ios - Swift NSAttributedString 修剪

ios - 对泛型类型 'Resource' 的引用需要 <…> 中的参数

Swift 字符串 lastPathComponent

ios - Facebook iOS SDK 和 Swift - 如何创建相关批量请求?

ios - 在 iOS 应用程序运行时更新资源

iphone - 在 Ant 脚本中添加 xcodeuild 的build设置

xcode - AutoLayout - 按钮超出边距并且太大

xcode - 如何将 FreeTDS 与 Xcode 结合使用?