Swift 通过设置,DateFormatter在ios中不工作
我在使用swift的xcode 6.2中使用了日期格式化程序。它在ios 8.1中运行良好,但当我在ios 8.1以上版本中测试我的应用程序时,我在8.2和8.4中尝试了日期格式化程序,但它不工作。有没有人面临类似的问题。这是我获取的字符串格式的日期类型10-08-2015T13:59:53+0000。我需要在date with date formatter中转换它,格式为dd MM yyyy'T'HH:MM:ssZZZ,这是我将字符串转换为日期的方法:-Swift 通过设置,DateFormatter在ios中不工作,swift,date-format,xcode-6.2,ios8.4,Swift,Date Format,Xcode 6.2,Ios8.4,我在使用swift的xcode 6.2中使用了日期格式化程序。它在ios 8.1中运行良好,但当我在ios 8.1以上版本中测试我的应用程序时,我在8.2和8.4中尝试了日期格式化程序,但它不工作。有没有人面临类似的问题。这是我获取的字符串格式的日期类型10-08-2015T13:59:53+0000。我需要在date with date formatter中转换它,格式为dd MM yyyy'T'HH:MM:ssZZZ,这是我将字符串转换为日期的方法:- func dateFromString
func dateFromString(dateString:String)->NSDate
{
print(dateString)
var dateFormatter = NSDateFormatter()
//yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ
dateFormatter.dateFormat = "dd-MM-yyyy'T'HH:mm:ssZZZ"
var date = dateFormatter.dateFromString(dateString)
print(date)
return date!
}
对不起,我正在编辑这个问题。我找到了它发生的原因。在iphone的“日期和时间”设置页面中,如果24小时开机,则工作正常。如果关机,则只有日期格式化程序给出的日期为零。我在其中插入了GMT。在8.1.3中工作正常,但在8.4中给出了问题
谢谢
快乐编码警告
格式化程序的函数名与
自定义函数。不是说这是你的问题而是
可能不是有意的。
在某些情况下,您使用的是var而不是let,这同样不会导致错误
否则,代码将返回正确的日期。。。但使用日期格式,而不是字符串
要以所需格式打印,只需将日期转换回所需的字符串格式:
func dateFromString(dateString:String)->NSDate
{
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy'T'HH:mm:ssZZZ"
let date = dateFormatter.dateFromString(dateString)
return date!
}
let formatter = NSDateFormatter()
formatter.dateFormat = "dd/M/yyyy, H:mm"
print(formatter.stringFromDate(dateFromString("10-08-2015T13:59:53+0000")))
运行以测试最新的Swift。。。无问题警告
格式化程序的函数名与
自定义函数。不是说这是你的问题而是
可能不是有意的。
在某些情况下,您使用的是var而不是let,这同样不会导致错误
否则,代码将返回正确的日期。。。但使用日期格式,而不是字符串
要以所需格式打印,只需将日期转换回所需的字符串格式:
func dateFromString(dateString:String)->NSDate
{
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy'T'HH:mm:ssZZZ"
let date = dateFormatter.dateFromString(dateString)
return date!
}
let formatter = NSDateFormatter()
formatter.dateFormat = "dd/M/yyyy, H:mm"
print(formatter.stringFromDate(dateFromString("10-08-2015T13:59:53+0000")))
运行以测试最新的Swift。。。没有问题我找到了这个问题的答案。很抱歉延迟发布答案。您需要向格式化程序输入NSLocale,正如我在本例中所做的那样
func dateFromstring(dateString:String)->NSDate {
//print(date)
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy'T'HH:mm:ssZZZ"
//DateFormatter To change By chakshu
var enUSPOSIXLocale:NSLocale=NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.locale=enUSPOSIXLocale
dateFormatter.timeZone = NSTimeZone(name: "GMT")
//dateFormatter.timeZone = NSTimeZone.localTimeZone()
var date = dateFormatter.dateFromString(dateString)
//print(date)
return date!
}
希望这有帮助。
谢谢,我找到了这个问题的答案。很抱歉延迟发布答案。您需要向格式化程序输入NSLocale,正如我在本例中所做的那样
func dateFromstring(dateString:String)->NSDate {
//print(date)
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy'T'HH:mm:ssZZZ"
//DateFormatter To change By chakshu
var enUSPOSIXLocale:NSLocale=NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.locale=enUSPOSIXLocale
dateFormatter.timeZone = NSTimeZone(name: "GMT")
//dateFormatter.timeZone = NSTimeZone.localTimeZone()
var date = dateFormatter.dateFromString(dateString)
//print(date)
return date!
}
希望这有帮助。
谢谢我在iOS 8.4上试用过,效果很好。当你说不工作时,到底出了什么问题?得到一个零,然后当你打开它时失败了?不相关,但是,建议也设置区域设置来处理国际日历。看,xxx不工作在SO的帖子里说是完全没用的。它到底在干什么?撞车?提供错误的数据?返回零?当您回答自己的问题时,如果您想要自己的答案,您不应该编辑问题,而应该发布并接受。看见顺便说一句,按照上面的技术问答1480中的建议,将区域设置设置为en_US_POSIX,修复了此问题以及其他问题,例如非公历日历。我在iOS 8.4上尝试了此方法,效果很好。当你说不工作时,到底出了什么问题?得到一个零,然后当你打开它时失败了?不相关,但是,建议也设置区域设置来处理国际日历。看,xxx不工作在SO的帖子里说是完全没用的。它到底在干什么?撞车?提供错误的数据?返回零?当您回答自己的问题时,如果您想要自己的答案,您不应该编辑问题,而应该发布并接受。看见顺便说一句,按照上面的技术问答1480中的建议,将区域设置设置为en_US_POSIX,修复了此问题以及其他问题,例如非公历日历。好的,它成功了。我不明白为什么。无论如何,谢谢你,巴德!好吧,它起作用了。我不明白为什么。无论如何,谢谢你,巴德!