Swift:在当前日期基础上加/减日、周、月、年的教程及实例

816 阅读2分钟

本教程展示了如何在Swift中做以下事情

  • 获取昨天的日期
  • 获取明天的日期
  • 在当前日期上加减1个星期
  • 在当前日期上加减1个月的时间
  • 在当前日期上添加和减去1年的时间

要向当前日期添加任何值,Calendar 提供了date 方法,其语法如下

date(byAdding:to:options:)

byAdding: 告诉添加.day.month,.year.weekOfYear``value : 值可以是正数或负数to: 指定当前日期。

如何从当前日期中添加和减去日、月、周和年?

当前日期使用新的Date() 对象返回。

  • 获取当前日期的例子

Date()对象返回当前日期和时间

import Foundation
let date = Date()
print(date) 

输出:

2022-07-03 11:16:16 +0000
  • 获取昨天的日期的例子

Date()对象返回当前日期和时间


import Foundation
let date = Date()
// yesterday date
let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: date)!
print(yesterday)

输出:

2022-07-02 11:16:16 +0000
  • 获取明天的日期的例子

import Foundation
let date = Date()
// tomorrows date
let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: date)!
print(tomorrow)

输出结果:

2022-07-04 11:16:16 +0000
  • 在当前日期上加减1周的例子

import Foundation
let date = Date()
// add  1 week to current date
let nextWeek = Calendar.current.date(byAdding: .weekOfYear, value: -1, to: date)!
print(nextWeek)
// substract  1 week to current date
let previousWeek = Calendar.current.date(byAdding: .weekOfYear, value: 1, to: date)!
print(previousWeek)

输出结果:

2022-06-26 11:29:12 +0000
2022-07-10 11:29:12 +0000
  • 在当前日期上加减1个月的例子

import Foundation
let date = Date()
// add 1 month to current date
let onemonth = Calendar.current.date(byAdding: .month, value: 1, to: date)!
print(onemonth)

// substract 1 month to current date
let previousMonth = Calendar.current.date(byAdding: .month, value: -1, to: date)!
print(previousMonth)

输出:

2022-08-03 11:29:12 +0000
2022-06-03 11:29:12 +0000
  • 在当前日期上加减1年的例子

添加了byAdding: .year和值1的日期函数,以获得下一年的今日日期。 添加了byAdding: .year和值-1的日期函数,以获得上一年的今日日期。

// add 1 year to current date
let nextYear = Calendar.current.date(byAdding: .year, value: 1, to: date)!
print(nextYear)

// substract 1 year to current date
let previousYear = Calendar.current.date(byAdding: .year, value: -1, to: date)!
print(previousYear)

输出:

2023-07-03 11:31:01 +0000
2021-07-03 11:31:01 +0000