ios - 如何使用 DateFormatter 创建日期类型的当前日期?
问题描述
我有这样的代码:
func getCurrentDate() -> Date {
let formatter = DateFormatter()
formatter.dateStyle = DateFormatter.Style.medium
formatter.timeStyle = DateFormatter.Style.none
formatter.dateFormat = "dd.MM.yyyy"
formatter.timeZone = TimeZone(identifier: "GMT")
//I want for currentDate would be a Date type
let currentDate = formatter... /// how to convert to date type?
return currentDate
}
如何返回格式化的当前日期?日期函数返回日期格式为:2019-02-24 12:04:13 +0000。但我想以这种格式获取日期:24.02.2019。
我需要此代码的日期类型:
let differenceOfDate = Calendar.current.dateComponents(Set<Calendar.Component>([.day]),
from: getDateFromString(foodDate: getCurrentDateString()),
to: foodShelfLife).day
在该代码中,我得到字符串日期并将其转换为日期类型!我想在 1 函数中获取日期类型。
解决方案
如果我没记错的话,这里有误会。
日期与如何显示它(格式)无关。提到:
日期函数返回日期格式为:2019-02-24 12:04:13 +0000。
是打印的结果Date()
:
print(Date())
如果您想将其视为“24.02.2019”,则应编辑其格式,因此getCurrentDate
应返回一个字符串:
func getCurrentDate() -> String {
let formatter = DateFormatter()
formatter.dateStyle = DateFormatter.Style.medium
formatter.timeStyle = DateFormatter.Style.none
formatter.dateFormat = "dd.MM.yyyy"
formatter.timeZone = TimeZone(identifier: "GMT")
let currentDate = formatter.string(from: Date())
return currentDate
}
所以:
print(getCurrentDate())
应该给你的结果24.02.2019
。
更新:
如果您的目标是使用dateComponents
,您应该处理日期而不关心它们的格式。例子:
let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
let components = Calendar.current.dateComponents(Set<Calendar.Component>([.day]), from: yesterday, to: Date())
print(components) // day: 1 isLeapMonth: false
推荐阅读
- javascript - 使用foreach从集合列表中删除元素时获取枚举异常
- swift - 将 UIPageControl 添加到 NSCollectionLayoutSection
- c++ - C++ QT 自适应布局
- docker - 检查由于存储限制而未完全提取的 Docker 映像
- c++ - std::chrono::milliseconds(2000) vs 2000ms
- list - swiftui列表视图布局问题
- python - Python - 如果键包含在字符串中,则获取字典值
- google-sheets - 需要从谷歌表格的列表中计算某些值
- python - numpy where 语句的多个结果
- java - 如何在 kotlin 协程中获得特权?