您的位置:首页 > 移动开发 > IOS开发

iOS开发中时间NSDate几种格式的转换

2015-06-05 15:13 519 查看
在开发中经常会遇到和后台进行交互时时间格式的转换。

首先列举几种常见的NSDate的格式:

1 .   20150605234106格式  

2.    2015-06-05 15:41:06 +0000格式(正常的输出格式)

3.    1433498400格式(以1970年起到现在的秒数)

第一种格式转换为第二种格式

   //第一种时间格式
    NSString* string =
@"20150605234106";
    
    NSDateFormatter *inputFormatter = [[NSDateFormatter
alloc] init];
    
    [inputFormatter setLocale:[[NSLocale
alloc] initWithLocaleIdentifier:@"en_US"]];
    //( 设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制)
    [inputFormatter setDateFormat:@"yyyyMMddHHmmss"];
    
    NSDate* inputDate = [inputFormatter
dateFromString:string];
    //输出的是第二种格式的日期
    NSLog(@"date = %@", inputDate);
第一种格式转换成第三种格式

   //获取到当前的时间
    NSDate * nowDate=[NSDate
date];
    NSLog(@"nowDate = %@",nowDate);
    //输出的是第三种格式的日期
    NSString * dateString=[NSString
stringWithFormat:@"%.0f",[nowDate
timeIntervalSince1970]];
    NSLog(@"datestring = %@",dateString);
第三种格式转换成可以输出的String

   //第三种格式的日期
    NSString * dateString=
@"1433487206";
    NSDate *updatedDate=[[NSDate
alloc] initWithTimeIntervalSince1970:[dateString
doubleValue]];
    //输出为可以显示的String 
(此处需要一个NSDate+Category来实现)
    NSString * result=[updatedDate
timeIntervalDescription];
    NSLog(@"result = %@",result);
timeIntervalDescription为可选方法  可以输出为不同格式的日期显示格式

- (NSString *)timeIntervalDescription;//距离当前的时间间隔描述
- (NSString *)minuteDescription;/*精确到分钟的日期描述*/
- (NSString *)formattedTime;
- (NSString *)formattedDateDescription;//格式化日期描述

不需要NSDate+Category来实现简单的转换

    long
long int date=1433488265;
    NSDate * nowDate=[NSDate
dateWithTimeIntervalSince1970:date];(没有几分钟前的提示)

提示;所得到的时间都是以0时区计算的。输出的时候需要转换时区。

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios开发 nsdate