ios - 使用 dateFormat 将日期转换为日期
问题描述
我知道将日期转换为字符串//字符串到日期
和
let formatter = DateFormatter()
formatter.dateFormat = "yyyy MM dd"
let date = formatter.date ( from: String )
或者
let string = formatter.string ( from: Date )
但我想将日期转换为日期格式,如 “yyyy-MM-dd'T'HH:mm:ssZ”到日期格式的“yyyy-MM-dd”。
反正有一条线可以做到这一点吗?
解决方案
回答你的问题:没有。
您可以创建一个日期/字符串扩展名,它可以在一行中解决您的问题。注意,Date
object 是一个日期对象。它没有任何格式(如字符串)。
愿这对您有所帮助:
extension String {
func convertDateString() -> String? {
return convert(dateString: self, fromDateFormat: "yyyy-MM-dd'T'HH:mm:ssZ", toDateFormat: "yyyy-MM-dd")
}
func convert(dateString: String, fromDateFormat: String, toDateFormat: String) -> String? {
let fromDateFormatter = DateFormatter()
fromDateFormatter.dateFormat = fromDateFormat
if let fromDateObject = fromDateFormatter.date(from: dateString) {
let toDateFormatter = DateFormatter()
toDateFormatter.dateFormat = toDateFormat
let newDateString = toDateFormatter.string(from: fromDateObject)
return newDateString
}
return nil
}
}
使用一行代码:
let newDateString = "my date string".convertDateString()
推荐阅读
- css - 无法隐藏具有特定属性的 div
- reactjs - 为什么输入不在标题中?
- azure - 在本地创建 Azure VM 副本并将其部署在不同的实例上
- java - 如何将 String 转换为 int 并在其上调用方法?
- javascript - 如何解析以下日期结构:HHMM/DD?
- spring-boot - Angular 服务器端渲染 vs maven 包作为单个 jar
- firebase - “用户”不能分配给参数类型“未来”
' 在 FutureBuilder 中 - python - 快速 Api 将本地文件位置传递给功能以上传到服务器
- javascript - 使用 JS 更改 2 个 DIVS
- sorting - 将数据加载到 Redshift 后,Redshift 表不保留 SAS 排序顺序