【问题标题】:Calculate the date a period of time in the past from today [duplicate]从今天开始计算过去一段时间的日期[重复]
【发布时间】:2017-03-22 13:52:57
【问题描述】:

我使用此代码获取当前日期

let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy.MM.dd"
let result = formatter.string(from: date)

知道如何获取过去的日期,例如当前日期前一天或一年吗?

【问题讨论】:

标签: ios swift date


【解决方案1】:

尝试使用这个:

Date(timeIntervalSinceNow: -3600); \\One hour

或者您可以为此使用日历

let calendar = Calendar.current
var component = DateComponents()
component.year = -1
calendar.date(byAdding: component, to: Date())

【讨论】:

  • 不要使用第一个选项。在某些情况下会出错。
  • @rmaddy 你能提供这个案例的例子吗?
  • 通常您会遇到夏令时和闰秒期间的问题。最好使用Calendar 方法进行日期运算。
  • 但是对于 GMT 时区夏令时没有影响。所以我认为第一个解决方案没有任何问题。仅当您想添加几个月或几年的日期时,因为月份的天数不同。
  • 我在做一个一般性的声明,总是最好使用Calendar 方法来做日期数学。它永远是正确的。简单地增加或减少秒数可能正确也可能不正确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多