我有两部iPhone,一部是印度(有SIM卡),第二部是在美国(没有SIM卡)。现在我正在尝试将字符串转换为日期,但它不能正常工作。
这是我的代码。函数名称convertUnixTimeFromString
正在崩溃所以我正在使用if条件。
let start = getdate //"2016-01-03 06:35:53"//
print("TheDate========\(start)")
let INPUT_FORMAT:String = "yyyy-MM-dd HH:mm:ss"
let str_date:NSDate = DateUnixConvertor.convertDateFromString(start, format: INPUT_FORMAT)
public class func convertUnixTimeFromString(string:String , format:String) -> Double
{
let formatter:NSDateFormatter = DateUnixConvertor.setFormatterWithFormat(format)
formatter.timeZone = NSTimeZone(name: "UTC")
//NSTimeZone(name: "UTC")
var date = NSDate();
if let startDate = formatter.dateFromString(string) {
date = startDate
}
//let date:NSDate = formatter.dateFromString(string)!
let unixTime:Double = self.convertUnixTimeFromDate(date)
return unixTime
}
public class func convertStringFromDate(date:NSDate,format:String)->String
{
let unixTime:Double = DateUnixConvertor.convertUnixTimeFromDate(date)
let dateString:String = DateUnixConvertor.convertStringFromUnixTime(unixTime, format: format)
return dateString
}
public class func setFormatterWithFormat(format:String)->NSDateFormatter
{
let formatter:NSDateFormatter = NSDateFormatter()
formatter.dateFormat = format
formatter.locale = NSLocale.currentLocale()
return formatter
}
public class func convertDateFromUnixTime(unixtime:Double) -> NSDate
{
let date:NSDate = NSDate(timeIntervalSince1970: unixtime)
return date
}
我已使用此代码检查了两个电话区域
func ltzAbbrev() -> String { return NSTimeZone.localTimeZone().abbreviation ?? "" }
var getzone:String = ltzAbbrev();
print(getzone)
此代码的响应 印度== IST , 美国== GMT +5:30 请帮帮我。
答案 0 :(得分:0)
缩写值因NSLocale而异。尝试将NSLocale设置为印度,以便您获得IST值。
示例代码:
let locale = NSLocale(localeIdentifier: "en_IN")
dafeFormatter.locale = locale