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

标签 ios swift date-conversion

我有两部 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 请帮助我。

最佳答案

缩写值根据 NSLocale 的不同而不同。尝试设置NSLocale到印度,这样你就会得到IST的值。

示例代码:

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

关于ios - 在美国 iPhone Cell 中 NSDate 中的字符串转换无法正常工作,但在印度 iPhone Cell 中可以正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34606544/

相关文章:

ios - DiscoverServices 有时从不触发

ios - 设置 UIScrollView 以在 3 个 View Controller 之间滑动

swift - 从行中的单元格获取标签文本

ios - 如何加载带有注释信息的 View Controller

ios - 在 iOS 中将应用程序中的 cookie 设置为 Safari

ios - 如何实现从ControlCenter中查找?

ios - 从 UITableView 中删除顶部填充

sql server 从日期获取完整的月份名称

java - 日期/时间转换/算术

java - 需要在 spring-boot 应用程序中将 Json 输入中的本地日期保存到 oracle DB