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>>>& ...
随机推荐
- 本地编译全志R系列的步骤7(Ubuntu 17.04非长期支持版本)
本地编译全志R系列的步骤7(Ubuntu 17.04非长期支持版本) 2017/6/29 13:49 0.获取全志R系列的Android源码包: 请通过渠道/代理商/方案公司获取全志R系列的Andro ...
- TensorFlow OOM when allocating tensor with shape[5000,384707]
在session范围内不要进行eval()或者convert_to_tensor()操作, 否则会造成OOM,或者报出错误:GraphDef cannot be larger than 2GB usi ...
- 微软MVC框架实战:开源的JS库Knockout
[IT168 技术] Knowckout – 当MVC遭遇MVVM Knockout (或者Knockout.js ,KnockoutJS)是一个开源的JavaScript库,网址为www.knock ...
- java设计模式之策略模式总结
策略模式的定义:(定义截自http://www.cnblogs.com/whgk/p/6087064.html) 1.策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立 ...
- Python+selenium学习(二) selenium 定位不到元素
转载:https://www.cnblogs.com/tarrying/p/9681991.html tarrying selenium的三种等待时间 //隐式等待(20秒以内没哥一段时间就会去找元素 ...
- 导出功能在数据库内容为数字,excel表格中是汉字的时候
代码如下: @ExcelField(title = "饮水器评价",dictType = "waterer_rate" ,align = 2, sort = 2 ...
- python json格式和csv文件转换
python json格式和csv文件转换 上代码 import csv import json ''' json格式示例 [{ "firstName":"Bill&qu ...
- struts2源码下载链接
http://blog.csdn.net/qq_qun_247286682/article/details/6975298
- Iframe用法精析
String.prototype.match()中正则表达式的g标识存在的时候,函数不会捕获子表达式中的内容,不存在的时候可以. RegExp.prototype.exec()中g的存在只会影响,Re ...
- Radar Installation POJ - 1328 (贪心)
题目大意(vj上的翻译版本) 假定海岸线是无限长的直线.陆地位于海岸线的一侧,海洋位于另一侧.每个小岛是位于海洋中的一个点.对于任何一个雷达的安装 (均位于海岸线上),只能覆盖 d 距离,因此海洋中的 ...