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>>>& ...
随机推荐
- C++学习笔记(一)之指针
指向指针的引用 ; int * p; int *&r = p; //r为对指针p的引用 r = &i; //r为对p的引用,故对r赋值即将p指向i *r = ; //更新i的值 通过* ...
- 关于ds添加datarow
有一个dataset DS.如果我想将DS中的某一行复制,得到新的一行,添加到DS中. 可能就会想到:DS.Tables[0].Rows.Add(DS.Tables[0].Rows[i])但是这样程序 ...
- Java屏幕截图及剪裁
Java标准API中有个Robot类,该类可以实现屏幕截图,模拟鼠标键盘操作这些功能.这里只展示其屏幕截图. 截图的关键方法createScreenCapture(Rectangle rect) ,该 ...
- POJ_2387_最短路
Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 46859 Accepted ...
- vue项目国际化实现 vue-i18n使用详细教程
1.安装vue-i18n: npm i vue-i18n -S 当然你也可以这样: <script src="https://unpkg.com/vue/dist/vue.js&quo ...
- 03Struts2基本使用流程
Struts2基本使用流程 1.新建web工程 2.引入struts2类库 3.创建并配置Struts2的核心控制器web.xml用来拦截客户端请求并将请求转发到相应的Action类中来处理 4.创建 ...
- 基础:VS快捷键
VS.net中快捷键收缩和展开代码段 i. Ctrl-M-O 折叠所有方法 ii. Ctrl-M-P 展开所有方法并停止大纲显示(不可以再折叠了) iii. Ctrl-M-M 折叠或展开当 ...
- spark学习(1)---dataframe操作大全
一.dataframe操作大全 https://blog.csdn.net/dabokele/article/details/52802150 https://www.jianshu.com/p/00 ...
- 【 jquery 】常用
$("#input1").show('slide'); 渐进显示$("#input1").hide('slide'); 渐进隐藏 siblings ...
- 我的第一次"闭包"应用
结论: 闭包可以当作强类型语言如C++.Java的全局变量使用,非常巧妙 需求: ssm项目,使用pagehelper分页,在写前一页.后一页.第一页.最后一页等页面跳转时,遇到了问题,如果查询全部的 ...