时间的转换也是开发经常用到的,网络上已经有很多的例子,自己记录一下......
系统的一些方法
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;
}