gpt4 book ai didi

swift - DateFormatter 在 ios 中不起作用通过设置

转载 作者:搜寻专家 更新时间:2023-11-01 05:51:05 26 4
gpt4 key购买 nike

我在带有 swift 的 xcode 6.2 中使用日期格式化程序。它在 ios 8.1 中运行良好,但是当我在 8.1 以上的 ios 中测试我的应用程序时(我在 8.2 和 8.4 中尝试过)日期格式化程序无法正常工作。有没有人面临类似的问题。这是我以字符串格式 10-08-2015T13:59:53+0000 获取的日期类型。我需要使用格式为 "dd-MM-yyyy'T'HH:mm:ssZZZ" 的日期格式化程序将其转换为日期,这是我将字符串转换为日期的方法:-

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_hour_time 开启,则在日期和时间中它工作正常。如果它关闭则只有日期格式化程序给出 nil 日期。我在其中插入了格林威治标准时间。它在 8.1.3 中工作正常但给出8.4 中的问题

 dateFormatter.timeZone = NSTimeZone(name: "GMT")

谢谢快乐编码

最佳答案

我找到了这个问题的答案。抱歉延迟发布答案。您需要在格式化程序中输入 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!
}

希望对您有所帮助。谢谢

关于swift - DateFormatter 在 ios 中不起作用通过设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31922183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com