swift - 使用 to 和 from 日期过滤数组
问题描述
我正在使用 FMDB 数据库来保存我的记录,在我的数据库中我有这些东西的名称、编号、日期、标题等。
我想按日期获取记录,就像从 2 月 2 日到 2 月 4 日的所有记录一样,这是我正在尝试执行的代码,但是当我比较日期时,我也得到时间,所以比较失败
是否可以在没有时间的情况下将字符串转换为日期?
输出:- :2019-12-01 19:00:00 +0000
我想转换成格式 2019-12-01 (yyyy-dd-mm)
let start = lblTo.text ?? ""
let end = lblFrom.text ?? ""
let dateFormat = "dd-MM-yyyy"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = dateFormat
dateFormatter.timeStyle = .short
dateFormatter.dateStyle = .short
dateFormatter.timeZone = TimeZone.current
let startDate = dateFormatter.date(from: start)
let endDate = dateFormatter.date(from: end)
我正在尝试从数据库中过滤记录
for data in readingDataSouce{
let readingDate = stringToDate(date:data.date ?? "")
if readingDate > startDate! && readingDate < endDate!
{
}
}
func stringToDate(date:String) -> Date{
let start = date
let dateFormat = "dd-MM-yyyy"
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = dateFormat
let startDate = dateFormatter.date(from: start)
return startDate ?? Date()
}
解决方案
您正在使用 timeStyle = .short ,将其更改为 .none
let end = lblFrom.text ?? ""
let dateFormat = "yyyy-dd-MM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = dateFormat
dateFormatter.timeStyle = .none
dateFormatter.dateStyle = .short
let correctDate = dateFormatter.string(from: end)
推荐阅读
- flutter - 在 Play 商店发布应用程序后出现空白灰屏
- php - 在页面中显示来自同一类别的 Woocommerce 产品下拉列表
- javascript - 如何在 Javascript/Typescript 中实现负滚动?
- azure - 从 azure text 到语音流到不和谐的音频流
- spring-boot - 如何为返回 Thymeleaf 模板的控制器方法设置特定语言?
- regex - 在正则表达式中捕获特定范围的逗号分隔字符串
- r - 如何在 R 中绘制布朗运动(布莱克斯科尔斯模拟)
- javascript - 如何以角度将缓冲区数据转换为base64图像
- suitecrm - 自定义套件 CRM 字段
- c# - 布局组件中的访问方法