在 iOS Swift 中将 NSDate 转换为字符串
Convert NSDate to String in iOS Swift
我正在尝试将 NSDate
转换为 String
,然后更改格式。但是当我将 NSDate
传递给 String
时,它会产生空白。
let formatter = DateFormatter()
let myString = (String(describing: date))
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let yourDate: Date? = formatter.date(from: myString)
formatter.dateFormat = "dd-MMM-yyyy"
print(yourDate)
您从 Apple Dateformatter Document.If you want to set the dateformat for your dateString, see this link , the detail dateformat you can get here 获取详细信息
例如,喜欢
let formatter = DateFormatter()
// initially set the format based on your datepicker date / server String
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let myString = formatter.string(from: Date()) // string purpose I add here
// convert your string to date
let yourDate = formatter.date(from: myString)
//then again set the date format whhich type of output you need
formatter.dateFormat = "dd-MMM-yyyy"
// again convert your date to string
let myStringDate = formatter.string(from: yourDate!)
print(myStringDate)
你得到的输出为
你更新了 code.update 它。
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let myString = formatter.string(from: date as Date)
let yourDate: Date? = formatter.date(from: myString)
formatter.dateFormat = "dd-MMM-yyyy"
print(yourDate!)
分配后DateFormatter
你需要给出格式化的字符串
然后你可以像这样转换为字符串
var date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let myString = formatter.string(from: date)
let yourDate: Date? = formatter.date(from: myString)
formatter.dateFormat = "dd-MMM-yyyy"
let updatedString = formatter.string(from: yourDate!)
print(updatedString)
输出
2017 年 3 月 1 日
我总是在将 Date
转换为 String
时使用此代码。 (Swift 3)
extension Date
{
func toString( dateFormat format : String ) -> String
{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
return dateFormatter.string(from: self)
}
}
然后像这样打电话。 .
let today = Date()
today.toString(dateFormat: "dd-MM")
您可以使用此扩展程序:
extension Date {
func toString(withFormat format: String) -> String {
let formatter = DateFormatter()
formatter.dateFormat = format
let myString = formatter.string(from: self)
let yourDate = formatter.date(from: myString)
formatter.dateFormat = format
return formatter.string(from: yourDate!)
}
}
并像这样在您的视图控制器中使用它(将 <"yyyy"> 替换为您的格式):
yourString = yourDate.toString(withFormat: "yyyy")
创建格式化程序时要记住的一点是,如果可以,请尝试重用同一实例,因为创建格式化程序的计算成本相当高。以下是我经常用于应用程序的模式,我可以在应用程序范围内共享相同的格式化程序,改编 from NSHipster.
extension DateFormatter {
static var sharedDateFormatter: DateFormatter = {
let dateFormatter = DateFormatter()
// Add your formatter configuration here
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
return dateFormatter
}()
}
用法:
let dateString = DateFormatter.sharedDateFormatter.string(from: Date())
DateFormatter
为那些懒得修改格式字符串的人提供了一些出厂日期样式。如果您不需要自定义样式,这里有另一个选项:
extension Date {
func asString(style: DateFormatter.Style) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = style
return dateFormatter.string(from: self)
}
}
这为您提供了以下样式:
short, medium, long, full
用法示例:
let myDate = Date()
myDate.asString(style: .full) // Wednesday, January 10, 2018
myDate.asString(style: .long) // January 10, 2018
myDate.asString(style: .medium) // Jan 10, 2018
myDate.asString(style: .short) // 1/10/18
我正在尝试将 NSDate
转换为 String
,然后更改格式。但是当我将 NSDate
传递给 String
时,它会产生空白。
let formatter = DateFormatter()
let myString = (String(describing: date))
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let yourDate: Date? = formatter.date(from: myString)
formatter.dateFormat = "dd-MMM-yyyy"
print(yourDate)
您从 Apple Dateformatter Document.If you want to set the dateformat for your dateString, see this link , the detail dateformat you can get here 获取详细信息 例如,喜欢
let formatter = DateFormatter()
// initially set the format based on your datepicker date / server String
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let myString = formatter.string(from: Date()) // string purpose I add here
// convert your string to date
let yourDate = formatter.date(from: myString)
//then again set the date format whhich type of output you need
formatter.dateFormat = "dd-MMM-yyyy"
// again convert your date to string
let myStringDate = formatter.string(from: yourDate!)
print(myStringDate)
你得到的输出为
你更新了 code.update 它。
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let myString = formatter.string(from: date as Date)
let yourDate: Date? = formatter.date(from: myString)
formatter.dateFormat = "dd-MMM-yyyy"
print(yourDate!)
分配后DateFormatter
你需要给出格式化的字符串
然后你可以像这样转换为字符串
var date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let myString = formatter.string(from: date)
let yourDate: Date? = formatter.date(from: myString)
formatter.dateFormat = "dd-MMM-yyyy"
let updatedString = formatter.string(from: yourDate!)
print(updatedString)
输出
2017 年 3 月 1 日
我总是在将 Date
转换为 String
时使用此代码。 (Swift 3)
extension Date
{
func toString( dateFormat format : String ) -> String
{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
return dateFormatter.string(from: self)
}
}
然后像这样打电话。 .
let today = Date()
today.toString(dateFormat: "dd-MM")
您可以使用此扩展程序:
extension Date {
func toString(withFormat format: String) -> String {
let formatter = DateFormatter()
formatter.dateFormat = format
let myString = formatter.string(from: self)
let yourDate = formatter.date(from: myString)
formatter.dateFormat = format
return formatter.string(from: yourDate!)
}
}
并像这样在您的视图控制器中使用它(将 <"yyyy"> 替换为您的格式):
yourString = yourDate.toString(withFormat: "yyyy")
创建格式化程序时要记住的一点是,如果可以,请尝试重用同一实例,因为创建格式化程序的计算成本相当高。以下是我经常用于应用程序的模式,我可以在应用程序范围内共享相同的格式化程序,改编 from NSHipster.
extension DateFormatter {
static var sharedDateFormatter: DateFormatter = {
let dateFormatter = DateFormatter()
// Add your formatter configuration here
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
return dateFormatter
}()
}
用法:
let dateString = DateFormatter.sharedDateFormatter.string(from: Date())
DateFormatter
为那些懒得修改格式字符串的人提供了一些出厂日期样式。如果您不需要自定义样式,这里有另一个选项:
extension Date {
func asString(style: DateFormatter.Style) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = style
return dateFormatter.string(from: self)
}
}
这为您提供了以下样式:
short, medium, long, full
用法示例:
let myDate = Date()
myDate.asString(style: .full) // Wednesday, January 10, 2018
myDate.asString(style: .long) // January 10, 2018
myDate.asString(style: .medium) // Jan 10, 2018
myDate.asString(style: .short) // 1/10/18