在美国的 NSDate 中进行字符串转换 iPhone Cell 无法正常工作,但在印度可以正常工作 iPhone Cell

string convert in NSDate in USA iPhone Cell is not working but its working in India iPhone Cell

我有两个 iPhones,一个在印度(有 sim),第二个在美国(没有 sim)。现在我正在尝试将字符串转换为日期,但它不起作用 USA Phone.

这是我的代码。函数名称是 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
    }

我已经使用此代码

检查了两个 phone 区域
func ltzAbbrev() -> String { return NSTimeZone.localTimeZone().abbreviation ?? "" }
var getzone:String = ltzAbbrev();
print(getzone)

此代码的响应 印度 == IST, 美国 == 格林威治标准时间 +5:30 请帮助我。

缩写值因 NSLocale 而异。尝试将 NSLocale 设置为 India,这样您将获得 IST 的值。

示例代码:

let locale = NSLocale(localeIdentifier: "en_IN")
dafeFormatter.locale = locale