iOS 时间和字符串的转换

2018-01-10  本文已影响0人  江河_ios

时间的转换也是开发经常用到的,网络上已经有很多的例子,自己记录一下......

系统的一些方法

NSTimeInterval  timeZoneOffset = [[NSTimeZone systemTimeZone] secondsFromGMT];    [NSTimeZone systemTimeZone];

//系统所在时区  

[NSTimeZonedefaultTimeZone];

//默认时区,貌似和上一个没什么区别

 [NSTimeZone timeZoneForSecondsFromGMT:0];//这就是GMT+0时区了 

[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:8*60*60]];//直接指定时区,这里是东8区

将时间戳转换成时间

NSTimeInterval  interval = [[NSDate date] timeIntervalSince1970];

NSDate*date = [NSDate  dateWithTimeIntervalSince1970:interval];

NSDateFormatter*objDateformat = [[NSDateFormatter  alloc] init];   

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

self.timeStr = [objDateformat  stringFromDate:date];

将0时区时间转换成本地时区的时间

[formatter setTimeZone:[NSTimeZonesystemTimeZone]];

将字符串转换为date

// 字符串化为日期转 1996-06-06 06:06:06

-(NSDate *)stringIsChangeDadeWith:(NSString *)str

{

    static NSString *GLOBAL_TIMEFORMAT = @"yyyy-MM-dd HH:mm:ss";

    NSTimeZone* localzone = [NSTimeZone localTimeZone];

    NSTimeZone* GTMzone = [NSTimeZone timeZoneForSecondsFromGMT:0];

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    [dateFormatter setDateFormat:GLOBAL_TIMEFORMAT]; //设置设计格式

    [dateFormatter setTimeZone:GTMzone]; //时区

    NSDate *date = [dateFormatter dateFromString:str];

    NSDate *dayDade = [NSDate dateWithTimeInterval:3600 sinceDate:date];

    [dateFormatter setTimeZone:localzone];

    return dayDade;

}

将date转换为字符串//日期转化为字符串 //[NSDate date]当前日期

-(NSString *)dateChangeStringWith:(NSDate *)date

{

    // 初始化时间格式控制器

    NSDateFormatter *matter = [[NSDateFormatter alloc] init];

    // 设置设计格式    [matter setDateFormat:@"yyyy-MM-dd hh:mm:ss zzz"];

    [matter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

    // 进行转换

    NSString *dateStr = [matter stringFromDate:date];

    return dateStr;

}

上一篇下一篇

猜你喜欢

热点阅读