博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
整理NSDate,NSTimeInterval和时间间隔问题
阅读量:5967 次
发布时间:2019-06-19

本文共 2468 字,大约阅读时间需要 8 分钟。

hot3.png

1.先在类目里定义这俩个变量{	NSDateFormatter *_dataFormater;	NSDate *_date;}2.在viewDidLoad里面写这段代码	_dataFormater = [[NSDateFormatter alloc] init];	[_dataFormater setDateFormat:@"HH:mm:ss"];	[_dataFormater setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]];		//时间格式设置完成	// test curent time//	NSTimeInterval timer = [NSDate dateWithTimeIntervalSince1970:];//	NSTimeInterval timer = [[NSDate date] timeIntervalSinceReferenceDate];		//直接从date得到时间格式  与实际时间相差8小时	NSString *stringFromNowDate = [_dataFormater stringFromDate:[NSDate date]];	NSLog(@"stringFromNowDate : %@", stringFromNowDate);	// 输出: 15:29:37   显示时间: 23:29   差8小时		// solve  workable solution	_date = [NSDate date];	NSLog(@"date :%@", _date);	NSTimeZone *timeZone = [NSTimeZone systemTimeZone];	NSInteger intetval = [timeZone secondsFromGMTForDate:_date];	NSLog(@"intetval :%d", intetval);// 28800	//现在时间	NSDate *localDate = [_date dateByAddingTimeInterval:intetval];	NSLog(@"localDate :%@", localDate);	NSString *stringFromLocal =  [_dataFormater stringFromDate:localDate];	NSLog(@"stringFromLocal : %@", stringFromLocal);			NSDate *date1 = [_dataFormater dateFromString:@"23:47:10"];	NSLog(@"date1: %@", date1);		//  nsdate是一个对象类型,日期时间格式很完整的,只是用于程序处理数据或者显示时不方便,因为一般ios处理的数据对象都是NSString,NSArray,NSDictionary。最好的办法把nsdate这种日期对象转化成其中的一种,苹果开发者文档提供了转化格式类NSDateFormatter专门进行NSString和NSDate的互相转化,		// NSTimeInterval是一个简单数据类型 的重命名   double醒数据  用户NSDate使用   表示距离某个日期多少秒  或者某个日期距离什么时间点多少秒  时间戳就是指这个数据。一般是距离1970年的时间距离。有可能是毫秒有可能是秒,这个要看具体服务器返回,这个诗句返回的是秒3.在一个button点击事件里写这段代码:	NSTimeZone *zone = [NSTimeZone systemTimeZone];	NSInteger interval = [zone secondsFromGMTForDate:[NSDate date]];	NSDate *localDate = [NSDate dateWithTimeInterval:interval sinceDate:[NSDate date]];	NSLog(@"clicled localDate :%@\nlocalDate.description:%@", localDate, localDate.description);	NSString *string = [_dataFormater stringFromDate:localDate];	NSLog(@"%@", string);		//假如这是俩个时间时间差	NSTimeInterval interval1 = 28800;	NSTimeInterval interval2 = [[NSDate date] timeIntervalSinceDate:_date];	NSDate *date1 = [NSDate dateWithTimeIntervalSince1970:interval1];	NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:interval2];		NSLog(@"date1 :%@", date1);	NSLog(@"data2 : %@", date2);	NSString *intervalTime1 = [_dataFormater stringFromDate:date1];	NSString *intervalTime2 = [_dataFormater stringFromDate:date2];	NSLog(@"interval1 : %@", intervalTime1);	NSLog(@"interval2 : %@", intervalTime2);

不准确确的欢迎指正。

转载于:https://my.oschina.net/u/2560887/blog/686387

你可能感兴趣的文章
maya pyside 多个窗口实例 报错 解决
查看>>
我的友情链接
查看>>
通知中心
查看>>
我的友情链接
查看>>
MVC中的三个模块
查看>>
Line: 220 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
查看>>
oracle 常用命令大汇总
查看>>
2012年春运火车票电话和网上订票技巧、攻略
查看>>
根据request获取请求路径
查看>>
mysql 并行复制
查看>>
傲不可长,欲不可纵,乐不可极,志不可满——提高个人修养
查看>>
linux系统增加swap容量的方法
查看>>
后台调用gps
查看>>
HTML5标签的语义认知和理解(1)
查看>>
MySQL日志功能详解(2)
查看>>
HP LaserJet 305X 和 339X 系列一体机如何设置手动或自动接收传真?
查看>>
linux之权限之隐藏权限
查看>>
XDCTF成长记录
查看>>
Linux系统中的文本处理工具
查看>>
IDE---Python IDE之Eric5在window下的安装
查看>>