IOS学习笔记之十七 (NSDate、NSDateFormatter、NSCalendar、NSDateComponents、NSTimer)

1、NSDate

时间与日期的初始化,主要有

[NSDate date];

 


2、NSDateFormatter

 

主要用于NSString和Date之间相互转化
//NSDate转NSStringstringFromDate:dt//NSString转NSDatedateFromString

 

 

 

 

 

 

3、NSCalendar和NSDateComponents

Date打印出具体时间的年月日和把年月日转化为Date

 

 


4、NSTimer

定时器
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;

 

 

 


5、测试Demo

main.m文件

int main(int argc, char * argv[]) {@autoreleasepool {//NSDate常用方法NSDate *date = [NSDate date];NSLog(@"%@", date);NSDate *date1 = [[NSDate alloc] initWithTimeIntervalSinceNow:3600 * 24];NSLog(@"date1 is %@", date1);NSDate *date2 = [[NSDate alloc] initWithTimeIntervalSinceNow:-3 * 3600 * 24];NSLog(@"date1 is %@", date2);NSLocale *cn = [NSLocale currentLocale];NSLog(@"%@", [date1 descriptionWithLocale:cn]);NSLog(@"%@", [date1 earlierDate:date2]);//NSDate转NSStringNSDate *dt = [NSDate dateWithTimeIntervalSince1970:3600 * 24 * 366 * 20];NSDate *dt1 = [NSDate dateWithTimeIntervalSince1970:0];NSLog(@"%@", dt1);NSDateFormatter *df = [[NSDateFormatter alloc] init];[df setDateFormat:@"公元yyyy年MM月DD日 HH时mm分"];NSLog(@"%@", [df stringFromDate:dt]);//NSString转NSDateNSString *str = @"2018-03-02";NSDateFormatter *df1 = [[NSDateFormatter alloc] init];[df1 setDateFormat:@"yyyy-MM-dd"];NSLog(@"%@", [df1 dateFromString:str]);//NSCalendar和NSDateComponents使用NSCalendar *car = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];NSDate *date3 = [NSDate date];unsigned unit = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit;NSDateComponents *comp = [car components:unit fromDate:date3];NSLog(@"现在是%ld年", comp.year);NSLog(@"现在是%ld月", comp.month);NSLog(@"现在是%ld日", comp.day);NSLog(@"现在是%ld时", comp.hour);NSLog(@"现在是%ld分", comp.minute);NSLog(@"现在是%ld秒", comp.second);NSLog(@"现在是星期%ld", comp.weekday);NSDateComponents *comp1 = [[NSDateComponents alloc] init];comp1.year = 2015;comp1.month = 4;comp1.day = 5;comp1.hour = 18;comp1.minute = 34;NSDate *date4 = [car dateFromComponents:comp1];NSLog(@"date is %@:", date4);return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));}
}

 

 

 

 

 

ViewControl.m文件(这里实现的定时器)

@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];
//    Control *control = [Control new];
//    control.delegate = self;
//    [control willShowAlert];NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(Timered:) userInfo:nil repeats:YES];
}- (void)Timered:(NSTimer*)timer {NSLog(@"hello chenyu");
}
@end

 

 

 

 

 


6、运行的结果

2018-07-12 23:03:31.634870+0800 cyTest[37918:6787840] hello chenyu
2018-07-12 23:03:32.634915+0800 cyTest[37918:6787840] hello chenyu
2018-07-12 23:03:33.634881+0800 cyTest[37918:6787840] hello chenyu
2018-07-12 23:03:34.634938+0800 cyTest[37918:6787840] hello chenyu
2018-07-12 23:03:35.634998+0800 cyTest[37918:6787840] hello chenyu
2018-07-12 23:03:36.635095+0800 cyTest[37918:6787840] hello chenyu
2018-07-12 23:03:37.635086+0800 cyTest[37918:6787840] hello chenyu2018-07-12 23:14:23.789640+0800 cyTest[38218:6796894] Thu Jul 12 23:14:23 2018
2018-07-12 23:14:23.790844+0800 cyTest[38218:6796894] date1 is Fri Jul 13 23:14:23 2018
2018-07-12 23:14:23.791492+0800 cyTest[38218:6796894] date1 is Mon Jul  9 23:14:23 2018
2018-07-12 23:14:23.804598+0800 cyTest[38218:6796894] Friday, July 13, 2018 at 11:14:23 PM China Standard Time
2018-07-12 23:14:23.804853+0800 cyTest[38218:6796894] Mon Jul  9 23:14:23 2018
2018-07-12 23:14:23.805346+0800 cyTest[38218:6796894] Thu Jan  1 08:00:00 1970
2018-07-12 23:14:23.805927+0800 cyTest[38218:6796894] 公元1990年01月16日 08时00分
2018-07-12 23:14:23.808330+0800 cyTest[38218:6796894] Fri Mar  2 00:00:00 2018
2018-07-12 23:14:23.808982+0800 cyTest[38218:6796894] 现在是2018年
2018-07-12 23:14:23.809150+0800 cyTest[38218:6796894] 现在是7月
2018-07-12 23:14:23.809354+0800 cyTest[38218:6796894] 现在是12日
2018-07-12 23:14:23.809558+0800 cyTest[38218:6796894] 现在是23时
2018-07-12 23:14:23.809684+0800 cyTest[38218:6796894] 现在是14分
2018-07-12 23:14:23.809834+0800 cyTest[38218:6796894] 现在是23秒
2018-07-12 23:14:23.810407+0800 cyTest[38218:6796894] 现在是星期5
2018-07-12 23:14:23.811211+0800 cyTest[38218:6796894] date is Sun Apr  5 18:34:00 2015:
2018-07-12 23:14:27.764633+0800 cyTest[38218:6796894] hello chenyu
2018-07-12 23:14:28.764758+0800 cyTest[38218:6796894] hello chenyu
2018-07-12 23:14:29.765776+0800 cyTest[38218:6796894] hello chenyu
2018-07-12 23:14:30.765792+0800 cyTest[38218:6796894] hello chenyu
2018-07-12 23:14:31.765426+0800 cyTest[38218:6796894] hello chenyu

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android studio adil位置,在Android Studio 中正确使用adil ”绝对经典“

今天调用远程服务中遇到了一个问题,哎,调了2个小时,后来终于解决,总结来看还是对新的Android Studio 不够熟悉。那么。。。。就可以睡觉啦!!!在Android Studio中使用进程通信机制adil时一定要注…

[第二篇]如何在ASP.Net Core的生产环境中使用OAuth保护swagger ui

在我上篇文章如何在ASP.Net Core的生产环境中保护swagger ui中,我们讨论了如何使用基本身份验证来保护 swagger ui。使用 OAuth 2.0 和 OpenIdConnect 进行保护随着应用程序越来越多地使用 OAuth 和 OpenIdConnect,应用程序很有可能使用 OAuth 和 OpenID…

python opencv 图像切割_【OpenCV+Python】图像的基本操作与算术运算

图像的基本操作在上个教程中,我们介绍了使用鼠标画笔的功能。本次教程,我们将要谈及OpenCV图像处理的基本操作。本次教程的所有操作基本上都和Numpy相关,而不是与OpenCV相关。要使用OpenCV编写更好的优化代码,需要Numpy的丰富知识…

CLR触发器

using System; using System.Data; using System.Data.SqlClient; using Microsoft.SqlServer.Server;public partial class Triggers {// 为目标输入现有表或视图并取消对属性行的注释[Microsoft.SqlServer.Server.SqlTrigger (Name"Trigger1", Target"Unit_E&…

IOS学习笔记十八(copy、mutableCopy、NSCopying、NSMutableCopy、深复制、浅复制)

1、 copy、mutableCopy方法 copy方法返回对象的不可修改的副本 mutableCopy方法返回的对象可修改的副本 1)、测试demo int main(int argc, char * argv[]) {autoreleasepool {NSMutableString *book [NSMutableString stringWithString:"chenyu"];NSMutableStrin…

编程心得03

新的一年2016,再接再厉! 转载于:https://www.cnblogs.com/Anzhongliu/p/6091848.html

光伏领跑者火热前行 可靠性护航“长跑”

随着第三批光伏领跑者申报标准的出台,在目前普通电站指标有可能缩水的情况下,2017年8-10GW的光伏领跑者项目又将成为各电站投资商争夺的“红海”。光伏领跑者在过去两年时间里为行业带来的变化有目共睹,从模式创新到电价下降,快速…

鸿蒙os系统被推送,鸿蒙来了!华为大规模推送鸿蒙OS系统,造成网站一度瘫痪...

千呼万唤始出来,期盼已久的手机鸿蒙OS系统终于迎来了大规模推送!今年2月份在华为Mate X2折叠屏手机发布会上,华为就曾表示将在4月份开始大规模推送鸿蒙OS系统,4月27日通过测试申请的用户正式接到升级鸿蒙OS系统的通知,…

jps、jinfo、jstat、jstack、jmap、jconsole等命令简介

2019独角兽企业重金招聘Python工程师标准>>> JDK提供了几个很实用的工具,如下: jinfo:观察运行中的java程序的运行环境参数:参数包括Java System属性和JVM命令行参数,java class path等信息。命令格式&…

读《底层逻辑》

《底层逻辑》本书作者是刘润,他在得到上开设了课程《5 分钟商学院》,我也是在得到上知道的这本书,这本书在豆瓣上的评分不是很高,褒贬不一,不过我看着觉得挺好。看了一些豆瓣的评论,觉得这本书不好有这么几…

IOS学习笔记十九NSArray和NSMutableArray

1、NSArray NSArray不可变集合&#xff0c;不能添加新元素和删除已有元素和替换元素 2、demo Dog.h #import <Foundation/Foundation.h> #ifndef Dog_h #define Dog_hinterface Dog : NSObject property (nonatomic, strong) NSString *name; property (nonatomic, as…

centOS安装Mysql指南

centOS安装Mysql指南 说明&#xff1a;使用操作系统centOS6.4 32位系统&#xff1b;mysql:mysql-5.7.10-linux-glibc2.5-i686.tar.gz; 一、准备 下载mysql wget http://mirrors.sohu.com/mysql/mysql:mysql-5.7.10-linux-glibc2.5-i686.tar.gz 注&#xff1a;所有shell命令都以…

2016年:勒索病毒造成损失预估超过10亿美元

根据趋势科技公布的最新报告&#xff08;PDF&#xff09;&#xff0c;2016年是敲诈勒索软件频发的一年&#xff0c;同比增长752%&#xff0c;预测由Locky、Goldeneye等勒索病毒所造成的损失超过10亿美元。报告中同时指出企业和个人是勒索软件的重灾区&#xff0c;而且勒索病毒还…

python3.6字典有序_为什么从Python 3.6开始字典有序并效率更高

在Python 3.5&#xff08;含&#xff09;以前&#xff0c;字典是不能保证顺序的&#xff0c;键值对A先插入字典&#xff0c;键值对B后插入字典&#xff0c;但是当你打印字典的Keys列表时&#xff0c;你会发现B可能在A的前面。 但是从Python 3.6开始&#xff0c;字典是变成有顺序…

Linux的进程/线程间通信方式总结

2019独角兽企业重金招聘Python工程师标准>>> Linux系统中的进程间通信方式主要以下几种: 同一主机上的进程通信方式 * UNIX进程间通信方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal) * System V进程通信方式&#xff1a;包括信号量(Semaphore), 消息队列(Me…

开源作者去世后,代码谁来继承?

文 | 肖滢出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013)2008 年初&#xff0c;澳大利亚一对兄弟 Simon Zerner 和 Toby Zerner 开始了 esoTalk 的开发。不幸的是&#xff0c; esoTalk 尚处于 Alpha 阶段&#xff0c;主力开发人员哥哥 Simon 就在 2009 年年中去世。…

html 整数转换为小数,二进制如何四舍五入 十进制小数怎么转换为二进制小数?...

二进制是否有类似十进制中“四舍五入”的说法二进制转换成十进制保留小数部分是否要四舍五入&#xff0c;...应当采用“零舍一入”(相当于十进制数的“四舍五入”)。用38线译码器74ls138&#xff0c;实现3位二进制的四舍五入&#xff0c;38线译码器输入对应的110为十进制数6&am…

Android之popWindows底部弹出挡住了华为虚拟键盘问题

1、问题 使用popWindows的时候底部弹出遮挡华为虚拟键盘 2、解决办法 在调用下面代码之前 popupWindow.showAtLocation 加上如下的代码进行设置 popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

项目中使用CLR编程

1、创建自己的项目 2、右键“解决方案。。。”→添加→新建项目→C#→数据库→SQL Server项目,如下图所示: 3、选择操作数据库

SDN火爆!未来五年年复合增长率达98%

在如今的网络世界&#xff0c;软件定义网络SDN和网络功能虚拟化NFV成为了新的“宠儿”&#xff0c;特别是对于运营商来说&#xff0c;已经将它们视为面向未来转型的关键。因此已经有越来越多的运营商开始尝试引入SDN和NFV技术&#xff0c;尽管它们的标准还尚未完善。 最早采用S…