如何获取 Swift 中给定日期的值?
How to get to values of given date in Swift?
我需要编写一个函数,获取这样的日期:"2017-04-20T12:12:17.004+0200"
我发现这个匹配模式:"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
和函数return 字符串:"It is Monday 20, May, year 2017"。
为此,我必须获取每个值并验证它们。我不知道该怎么做。我知道有类似 components 的东西,但它只与当前日期一起使用,没有给出。有人可以帮帮我吗?
这是我的代码:
var date = "2017-04-20T12:12:17.004+0200"
let dateFormatterGet = DateFormatter()
dateFormatterGet.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
if let date = dateFormatterGet.date(from: date) as? Date {
print(date)
} else {
// invalid format
print("bad format")
}
请帮忙:(
您可以使用组件,但这不是必需的,因为您可以只使用 DateFormatter。
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
if let date = dateFormatter.date(from: date) {
dateFormatter.dateFormat = "'It is' EEEE dd, MMMM, 'year' yyyy"
// Just for this example we set it English
// a better solution would be to use the devices local,
// since this is what the user expecting how the date should be presented.
dateFormatter.locale = Locale(identifier: "en")
let formatted = dateFormatter.string(from: date);
print(formatted)
} else {
// invalid format
print("bad format")
}
我在日期格式化程序中添加了语言环境以确保格式为英文。
我需要编写一个函数,获取这样的日期:"2017-04-20T12:12:17.004+0200"
我发现这个匹配模式:"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
和函数return 字符串:"It is Monday 20, May, year 2017"。 为此,我必须获取每个值并验证它们。我不知道该怎么做。我知道有类似 components 的东西,但它只与当前日期一起使用,没有给出。有人可以帮帮我吗? 这是我的代码:
var date = "2017-04-20T12:12:17.004+0200"
let dateFormatterGet = DateFormatter()
dateFormatterGet.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
if let date = dateFormatterGet.date(from: date) as? Date {
print(date)
} else {
// invalid format
print("bad format")
}
请帮忙:(
您可以使用组件,但这不是必需的,因为您可以只使用 DateFormatter。
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
if let date = dateFormatter.date(from: date) {
dateFormatter.dateFormat = "'It is' EEEE dd, MMMM, 'year' yyyy"
// Just for this example we set it English
// a better solution would be to use the devices local,
// since this is what the user expecting how the date should be presented.
dateFormatter.locale = Locale(identifier: "en")
let formatted = dateFormatter.string(from: date);
print(formatted)
} else {
// invalid format
print("bad format")
}
我在日期格式化程序中添加了语言环境以确保格式为英文。