iOS 时间戳 与 时间相互转化
2015-04-06 本文已影响5742人
小白和小黑
在从网站天气API读取数据的时候,太阳升起的时间竟然是1428183087,有点模糊,感觉去看说明,原来采用的是UTC时间,结果是一个Unix 时间戳。谷歌了一下UTC这个从来没见过的东西,解释如下(来源维基百科)
协调世界时,又称世界标准时间或世界协调时间,简称UTC(从[英文]"Coordinated Universal Time”/[法文]“TempsUniversel Cordonné”而来),是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治平时。中国大陆采用ISO 8601:2000的国家标准GB/T 7408-2005《数据元和交换格式 信息交换 日期和时间表示法》中亦称之为协调世界时。台湾采用CNS 7648的《资料元及交换格式–资讯交换–日期及时间的表示法》(与ISO 8601类似)称之为世界协调时间。
如果你觉得读不懂维基百科上面关于UTC的说明,很简单,中国属于东八区,UTC+8。了解了就可以了。
对于编程重要的是时间戳这个概念。
时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)至当前时间的总秒数。
时间戳在我印象中的作用就是在验证码的时候可以使用。在你设计数据库的时候第一列永远是ID,这个ID可以使用时间戳来表示,而不是1,2,3,4.......。
以下代码是使用iOS swift语言编写的
//时间戳 时间转换
func changeUTCtoDate(UTCString:Int)->NSString{
var sunStr = NSString(format: "%d", UTCString)
var timer:NSTimeInterval = sunStr.doubleValue
var data = NSDate(timeIntervalSince1970: timer)
var formatter = NSDateFormatter()
formatter.dateStyle = NSDateFormatterStyle.ShortStyle
formatter.dateFormat = "HH:mm"
var str:NSString = formatter.stringFromDate(data)
return str
}
如果是OC的话,官方的方法其实是一样的,只是写法不一样
- (instancetype)initWithTimeIntervalSince1970:([NSTimeInterval])*seconds*
代码应该不需要解释了,很简单。
如果你想从时间获取时间戳也很简单
data.timeIntervalSince1970
最近iOS 文章都会是短篇的文章,因为我要做APP,但是会遇到很多的问题,就得去解决,会发在简书上面,希望大家一起来交流。有想法一起来交流分享。