IOS 时间戳
2015-08-14 11:05
531 查看
时间戳:是自 1970 年 1 月 1 日(00:00:00 GMT)至当前时间的总秒数。它也被称为 Unix 时间戳(Unix Timestamp)
一、 Unix 时间戳为什么是自 1970 年 1 月 1 日起的绝对时间? 那么,1970年之前的时间如何用Unix时间戳表示?
1、
因为Unix就是那个时代产生的。
Unix是1969年发布的雏形,最早是基于硬件60Hz的时间计数。
1971年底出版的《Unix
Programmer's Manual》里定义的Unix Time是以1971年1月1日00:00:00作为起始时间,每秒增长60。
之后考虑到32位整数的范围,如果每秒60个数字,则两年半就会循环一轮了。于是改成了以秒为计数单位。
这个循环周期有136年之长,就不在乎起始时间是1970还是1971年了,于是就改成了人工记忆、计算比较方便的1970年了。
(详见:http://en.wikipedia.org/wiki/Unix_time#History)
2、因为unix时间戳是一个有符号整数,所以1970年前一百年可以用其负数部分表示。
但事实上很少这要使用。因为unix时间戳主要用来表示当前时间或者和电脑有关的日志时间(如文件创立时间,log发生时间等)。
考虑到所有电脑文件不可能在1970年前创立,所以用unix时间戳很少用来表示1970前的时间。
当需要表示以前的时间,一般就是自己定义数据结构。比如你可以用几个数分别表示年月日,或者像excel中用1900年1月1日后的天数表示时间。
二、下面是iOS中时间戳 与 时间之间的转换方法:
1、把时间转换为时间戳:::
也有这样写的:::
或者直接c语言函数time(NULL)就可以了
2、把时间戳转换为时间:::
一、 Unix 时间戳为什么是自 1970 年 1 月 1 日起的绝对时间? 那么,1970年之前的时间如何用Unix时间戳表示?
1、
因为Unix就是那个时代产生的。
Unix是1969年发布的雏形,最早是基于硬件60Hz的时间计数。
1971年底出版的《Unix
Programmer's Manual》里定义的Unix Time是以1971年1月1日00:00:00作为起始时间,每秒增长60。
之后考虑到32位整数的范围,如果每秒60个数字,则两年半就会循环一轮了。于是改成了以秒为计数单位。
这个循环周期有136年之长,就不在乎起始时间是1970还是1971年了,于是就改成了人工记忆、计算比较方便的1970年了。
(详见:http://en.wikipedia.org/wiki/Unix_time#History)
2、因为unix时间戳是一个有符号整数,所以1970年前一百年可以用其负数部分表示。
但事实上很少这要使用。因为unix时间戳主要用来表示当前时间或者和电脑有关的日志时间(如文件创立时间,log发生时间等)。
考虑到所有电脑文件不可能在1970年前创立,所以用unix时间戳很少用来表示1970前的时间。
当需要表示以前的时间,一般就是自己定义数据结构。比如你可以用几个数分别表示年月日,或者像excel中用1900年1月1日后的天数表示时间。
二、下面是iOS中时间戳 与 时间之间的转换方法:
1、把时间转换为时间戳:::
NSDate *localDate = [NSDate date]; //获取当前时间 NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[localDate timeIntervalSince1970]]; //转化为UNIX时间戳 NSLog(@"timeSp:%@",timeSp); //时间戳的值
也有这样写的:::
NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0]; NSTimeInterval a=[dat timeIntervalSince1970]*1000; // *1000 是精确到毫秒,不乘就是精确到秒 NSString *timeString = [NSString stringWithFormat:@"%f", a]; //转为字符型懒的话就一句话:
NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[[NSDate date] timeIntervalSince1970]];
或者直接c语言函数time(NULL)就可以了
NSLog(@"%ld", time(NULL)); // 这句也可以获得时间戳,跟上面一样,精确到秒
2、把时间戳转换为时间:::
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:1363948516]; NSLog(@"1363948516 = %@",confromTimesp); //之后就可以对NSDate进行格式或处理
相关文章推荐
- Nagios安装
- Nagios配置之Windows
- 正则表达式在iOS中的运用
- ios代码实现Autolayout(自动布局)的简单讲解
- iOS学习之AutoLayout常用方法
- Undefined symbols for architecture armXX
- iOS中NSString常用操作合集
- IOS 四种保存数据的方式
- iOS内置音频
- IOS应用程序生命周期
- iOS开发之CGPoint、CGSize、CGRect、CGRectMake、window(窗口)、视图(view)
- 【iOS发展-81】setNeedsDisplay刷新显卡,并CADisplayLink它用来模拟计时器效果
- Xcode bug: imageNamed:方法返回nil
- Missing restore mechanism解决方案
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
- ios 制作静态库详解
- 双人对战的球类游戏ios源码项目
- 双人对战的球类游戏ios源码项目
- iOS集成支付宝
- Nagios安装