NSDate和NSString相互转换

来源:互联网 发布:大数据 个人征信 编辑:程序博客网 时间:2024/06/04 18:12

做ios开发时,有时候会遇到很简单很小的功能,如题,就比如NSDate和NSString相互转换,虽然很简单,但有时候就记不住,每次都要查资料,好记性不如烂笔头啊,所以还是老老实实记一下,方便以后查阅吧。

1、  NSDate转NSString – 日期转换成字符串

直接上代码:

   //获取系统当前时间

    NSDate *currentDate = [NSDatedate];

    //用于格式化NSDate对象

    NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];

    /**

     *  注意:yyyy是小写的;大写的YYYY的意思有些不同——“将这一年中第一周的周日当作今年的第一天,因此有时结果和yyyy相同,有时就会不同。

    MM表示月份,大写,HH表示小时,大写

    */

   [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    //NSDateNSString

    NSString *currentDateStr = [dateFormatterstringFromDate:currentDate];

    //输出currentDateString

    NSLog(@"%@",currentDateStr);

  

NSDate对象一般包含两个部分,日期(Date)和时间(Time),格式化的时间字符串主要也是针对这两部分,NSDateFormatter部用于格式化NSDate对象,支持本地化信息。

NSDateFormatter常用格式如下

yyyy-MM-dd HH:mm:ss.SSS 年-月-日 时:分:秒 毫秒

yyyy-MM-dd HH:mm:ss

yyyy-MM-dd 

yyyy/MM/dd

 

NSDateFormatter格式化参数如下:

G: 公元时代,例如AD公元

yy: 年的后2

yyyy: 完整年

MM: 月,显示为1-12

MMM: 月,显示为英文月份简写,如 Jan

MMMM: 月,显示为英文月份全称,如 Janualy

dd: 日,2位数表示,如02

d: 日,1-2位显示,如2

EEE: 简写星期几,如Sun

EEEE: 全写星期几,如Sunday

aa: 上下午,AM/PM

H: 时,24小时制,0-23

K:时,12小时制,0-11

m: 分,1-2

mm: 分,2

s: 秒,1-2

ss: 秒,2

S: 毫秒

 

2、 NSString 转 NSDate

    还是直接上代码啦

   //需要转换的字符串

    NSString *dateStr = @"2016-06-07 12:08:21";

    //设置转换格式

    NSDateFormatter *formatter = [[NSDateFormatteralloc] init] ;

   [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    //NSStringNSDate

   NSDate *newDate = [formatter dateFromString:dateStr];

 

注意:过多使用NSDateFormatter将影响程序的性能,且程序中NSDateFormatter对象的时间格式基本一致,所以使用NSDateFormatter的时候尽量使用单例模式。


0 0
原创粉丝点击