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

比较没有时间分量的NSDate

司空鸿熙
2023-03-14
问题内容

在一个快速的操场上,我一直在使用

NSDate.date()

但是,这总是在添加时间元素的情况下出现。对于我的应用程序,我需要忽略时间元素。在Swift中有可能吗?如何做呢?即使我可以将time元素设置为在每个日期都相同的时间,也可以使用。

另外,我正在尝试比较两个日期,此刻我正在使用以下代码:

var earlierDate:NSDate = firstDate.earlierDate(secondDate)

这是唯一的方法还是我可以忽略时间元素的方式进行操作?例如,如果它们是同一天,但时间不同,那么我不希望得到结果。


问题答案:

使用此Calendar功能比较iOS 8.0+中的日期

func compare(_ date1: Date, to date2: Date, toGranularity component: Calendar.Component) -> ComparisonResult

传递.day为单位

如下使用此功能:

let now = Date()
// "Sep 23, 2015, 10:26 AM"
let olderDate = Date(timeIntervalSinceNow: -10000)
// "Sep 23, 2015, 7:40 AM"

var order = Calendar.current.compare(now, to: olderDate, toGranularity: .hour)

switch order {
case .orderedDescending:
    print("DESCENDING")
case .orderedAscending:
    print("ASCENDING")
case .orderedSame:
    print("SAME")
}

// Compare to hour: DESCENDING

var order = Calendar.current.compare(now, to: olderDate, toGranularity: .day)


switch order {
case .orderedDescending:
    print("DESCENDING")
case .orderedAscending:
    print("ASCENDING")
case .orderedSame:
    print("SAME")
}

// Compare to day: SAME


 类似资料:
  • 问题内容: 如何在Java中比较没有时间的日期? 此代码比较时间和日期! 问题答案: 尝试比较将时间更改为00:00:00的日期(使用此功能):

  • 问题内容: 我必须比较hibernatehql查询中的两个日期。我在我的Java bean中使用java.util.Date,并在MySQL数据库中将时间戳用作数据类型。 上面的查询将时间与日期进行比较。我应该怎么做才能在没有时间的情况下比较上述查询中的日期。 问题答案: 有关可用的日期功能,请参见Hibernate文档。 http://docs.jboss.org/hibernate/orm/3

  • 问题内容: 以下代码有什么问题? 也许只比较日期而不是时间会更简单。我也不确定如何执行此操作,因此我进行了搜索,但找不到确切的问题。 顺便说一句,当我在警报中显示两个日期时,它们显示为完全相同。 我的代码: 有没有比较日期而不包含时间的简单方法? 问题答案: 我仍在学习JavaScript,而我发现唯一可以比较两个没有时间 的日期的方法是使用Date对象的方法,并将小时,分钟,秒和毫秒设置为零。然

  • 问题内容: 以我想使其正常工作的方式,这可能是不可能的,但是可以了。 数据库中的条目是: 但是,查询不返回任何结果。当然,如果涉及到日期,这将起作用,但是没有涉及。如果开始= ‘00:00:00’,它也将起作用。 问题答案: 我认为您正在寻找的是: 我不确定您是否需要使用CAST,尽管这也可以工作。

  • 问题内容: 我有时间,必须由用户以这种格式输入。 但是,我想比较上午10点到下午6点之间的时间(例如11:22)?但是,我该如何比较呢? 问题答案: Java还没有一个好的内置类(它有一个用于JDBC查询的类,但这不是你想要的)。 一种选择是使用JodaTime API和它的本地时间类。 只使用内置的Java API,就只能使用java.util.Date。你可以使用SimpleDateForma

  • 问题内容: 我试图创建简单的功能,只是将一个时间的时区更改为另一个时区(假设UTC为+0700 WIB)。这是源代码。我有2个函数,第一个将具有相同日期时间的时区更改为+0700 WIB。其次是将给定时间的时区更改为。可以完美地工作,而另一个则不能。 将始终对这个结果fullfilled。 但这是同一时间吗?我错过了什么? 问题答案: 有一种比较日期的方法: 引用文档: 请注意,Go ==运算符不