NSDate 格式化 及 互转
/*
NSDateFormatter的作用
1.NSString -> NSDate
2.NSDate -> NSString
*/
void fmt_date_to_string();
void fmt_string_to_date();
void fmt_string_to_date2();
void fmt_timestamp_to_date3(); int main(int argc, const char * argv[]) {
@autoreleasepool {
// 2015-10-01 14:38:40
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *createdAtDate = [fmt dateFromString:@"2015-9-15 23:59:59"]; NSCalendar *calendar = [NSCalendar currentCalendar];
NSLog(@"%d", [calendar isDateInTomorrow:createdAtDate]);
}
return ;
} void calendar_interval_between_date()
{
// 获得系统当前时间
NSDate *nowDate = [NSDate date]; // 服务器返回的时间字符串
NSString *createdAtString = @"2014-02-20 10:49:54";
// 创建一个日期格式化对象
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
// 设置日期格式
fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";
// NSString -> NSDate
NSDate *createdAtDate = [fmt dateFromString:createdAtString]; // 计算createdAtDate和nowDate的时间间隔
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *cmps = [calendar components:unit fromDate:createdAtDate toDate:nowDate options:];
NSLog(@"%@", cmps);
} /**
* 获得某个NSDate对象的所有日期元素 : 年月日时分秒
*/
void get_components_of_date()
{
// 获得系统当前时间
NSDate *nowDate = [NSDate date]; // 日历对象
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *cmps = [calendar components:unit fromDate:nowDate];
NSLog(@"%@", cmps); // NSInteger year = [calendar component:NSCalendarUnitYear fromDate:nowDate];
// NSInteger minute = [calendar component:NSCalendarUnitMinute fromDate:nowDate];
// NSLog(@"%zd %zd", year, minute); // NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
// // 设置日期格式
// fmt.dateFormat = @"HH";
// NSString *string = [fmt stringFromDate:nowDate];
// NSLog(@"%@", string);
} /**
* 2个NSDate之间的时间差值
*/
void date_interval()
{
// 获得系统当前时间
NSDate *nowDate = [NSDate date]; // 服务器返回的时间字符串
NSString *createdAtString = @"2015-10-16 10:49:54";
// 创建一个日期格式化对象
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
// 设置日期格式
fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";
// NSString -> NSDate
NSDate *createdAtDate = [fmt dateFromString:createdAtString]; // 计算createdAtDate和nowDate之间相隔的秒数
NSTimeInterval interval = [nowDate timeIntervalSinceDate:createdAtDate];
NSLog(@"%f", interval);
// 3600 / 60 = 60
// 60 /60 = 1
} /**
* timestamp -> NSDate
*/
void fmt_timestamp_to_date3()
{
// 时间戳 : 从1970年1月1日0点0分0秒开始经历的毫秒数
NSInteger timestamp = ; NSDate *date = [NSDate dateWithTimeIntervalSince1970:timestamp / 1000.0]; NSLog(@"%@", date);
} /**
* NSString -> NSDate
*/
void fmt_string_to_date2()
{
// 服务器返回的时间字符串
NSString *string = @"Tue May 31 17:46:55 +0800 2011"; // 创建一个日期格式化对象
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
// 解析欧美格式的日期字符串, 得设置语言类型为en_US
fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; // 设置日期格式
fmt.dateFormat = @"EEE MMM dd HH:mm:ss ZZZZ yyyy"; NSDate *date = [fmt dateFromString:string]; NSLog(@"%@", date);
} /**
* NSString -> NSDate
*/
void fmt_string_to_date()
{
// 服务器返回的时间字符串
NSString *string = @"2015-10-16 10:49:54"; // 创建一个日期格式化对象
NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; // 设置日期格式
fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss"; NSDate *date = [fmt dateFromString:string]; NSLog(@"%@", date);
} /**
* NSDate -> NSString
*/
void fmt_date_to_string()
{
// 获得系统当前时间
NSDate *now = [NSDate date]; // 创建一个日期格式化对象
NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; // 设置日期格式 : 2015年10月10日 15时56分30秒
// 年(year) : y
// 月(month) : M
// 日(day) : d
// 时(hour) : H(24小时制)\h(12小时制)
// 分(minute) : m
// 秒(second) : s
// 时区(zone) : Z fmt.dateFormat = @"yyyy年MM月dd日 HH时mm分ss秒"; // NSDate -> NSString
NSString *nowString = [fmt stringFromDate:now]; NSLog(@"----- %@", nowString);
}
NSDate 格式化 及 互转的更多相关文章
- NSDate 格式化 NSDate to NSString
NSLog(@"%@",[NSDate stringFromDate:[NSDate date] withFormat:@"yyyyMMdd__HH_mm_ss_zzz& ...
- NSDate 格式化含有毫秒
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"]; 版权声明:本文为博主原创文章,未经博主允许不得转载.
- iOS中NSDate常用转换操作整合
//当前时间格式化, 例:YYYY-MM-dd-EEEE-HH:mm:ss + (NSString *)getCurrentDataWithDateFormate:(NSString *)format ...
- oracle常规使用(一)
目录 特殊sql distinct 项目中遇到表中无主键,但是某个字段不能重复. 需要匹配id串里的内容 批量更新,但是批量成功返回的是-1 时间格式化 行列互转 应用场景 列转行 总结 oracle ...
- 时间戳和LocalDateTime和Date互转和格式化
一 前言 续上篇java8在日常开发中使用LocalDate和LocalTime[https://blog.csdn.net/youku1327/article/details/102771936]中 ...
- iOS NSDate获取当前时间并格式化
NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; [formatter setDateFormat:@"yyyy-MM- ...
- day04-交互、格式化输出及基本运算符
目录 与用户交互 python2和python3交互的区别 格式化输出 1 字符串拼接 2 占位符 3 format格式 4 f-string格式 基本运算符 算术运算符 比较运算符 赋值运算符 逻辑 ...
- NSString 常见数据类型转换:转NSInteger , NSDate(互转)
1. NSString转NSInteger, 转int (float, double类似 ) 1.1正常情况 , NSString所包含内容确能转化为int的类型 NSString *sNumber ...
- DAY04 与用户交 互格式化输出与运算符
与用户交互 输入: input # python2与python3的区别 # python3 res = input('please in put your username>>>& ...
随机推荐
- Java常见问题总结(二)
1.配置完Java环境变量之后,仍然不能使用java命令. 解决方法: 如果是Windows10系统出现此问题,是因为个别Windows10系统不识别“JAVA_HOME”环境变量,将path中所有的 ...
- IT项目为什么失败 --美国IT项目管理硕士笔记(一)
IT项目为什么失败 什么是项目 项目可以被看作任何一系列的活动和任务.这些活动和任务有一个特定目标需要在特定要求下完成,并有一个明确的开始结束日期和资金限制(如果有).项目需要消耗人力或非人力资源 ...
- 远程监视jboss应用java内存的配置(实测) .
前言 因为最近一个项目部署在客户那边运行一个月左右就会出现java内存溢出的问题,为了时时监控java内存的情况需要,需要远程查看服务器上java内存的一些情况.在公司模拟部署了远程监视linux下项 ...
- [Windows Server 2012] 更换PHP版本方法
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:更换PHP ...
- DWARF调试格式的简介
DWARF调试格式的简介 Michael J. Eager, Eager Consulting Feb, 2007 翻译:吴晖 2012年2月 如果我们可以编写确保能正确工作且永远不需要调试的程序,这 ...
- Java编辑编译及运行环境
Java编辑编译及运行环境 Microsoft Windows 编辑工具 EditPlus JDK JDK(Java Development Kit,Java开发工具包)安装JDK之后,其中bin文件 ...
- Android 各大网络请求库的比较及实战
自己学习android也有一段时间了,在实际开发中,频繁的接触网络请求,而网络请求的方式很多,最常见的那么几个也就那么几个.本篇文章对常见的网络请求库进行一个总结. HttpUrlConnection ...
- 迷宫自动生成以及基于DFS的自动寻路算法
直接贴代码 #include<ctime> #include<conio.h> #include<iostream> #include<windows.h&g ...
- python爬虫28 | 你爬下的数据不分析一波可就亏了啊,使用python进行数据可视化
通过这段时间 小帅b教你从抓包开始 到数据爬取 到数据解析 再到数据存储 相信你已经能抓取大部分你想爬取的网站数据了 恭喜恭喜 但是 数据抓取下来 要好好分析一波 最好的方式就是把数据进行可视化 这样 ...
- js之循环语句
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...