iOS 本地时间 / UTC时间 / 时间戳等操作 / 获取当前年月日

来源:互联网 发布:cocos2dx 老虎机源码 编辑:程序博客网 时间:2024/06/04 19:47

 //获得当前时间并且转为字符串

复制代码
复制代码
- (NSString *)dateTransformToTimeString{    NSDate *currentDate = [NSDate date];//获得当前时间为UTC时间 2014-07-16 07:54:36 UTC  (UTC时间比标准时间差8小时)    //转为字符串    NSDateFormatter*df = [[NSDateFormatter alloc]init];//实例化时间格式类    [df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//格式化    //2014-07-16 07:54:36(NSString类)    NSString *timeString = [df stringFromDate:currentDate];    return timeString;}
复制代码
复制代码

 //获取当前时间转为时间戳

复制代码
- (NSString *)dateTransformToTimeSp{    UInt64 recordTime = [[NSDate date] timeIntervalSince1970]*1000;//客户端当前13位毫秒级时间戳    NSString *timeSp = [NSString stringWithFormat:@"%llu",recordTime];//时间戳转字符串(13位毫秒级时间戳字符串)    return timeSp;}
复制代码
复制代码
复制代码
 1 //时间戳字符串1469193006001(毫秒)1469193006.001(毫秒,1469193006001234(微秒)1469193006.001234(微秒)转 UTC时间2016-08-11T07:00:55.611Z 2 - (NSString *)timespToUTCFormat:(NSString *)timesp 3 { 4     NSString *timeString = [timesp stringByReplacingOccurrencesOfString:@"." withString:@""]; 5     if (timeString.length >= 10) { 6         NSString *second = [timeString substringToIndex:10]; 7         NSString *milliscond = [timeString substringFromIndex:10]; 8         NSString * timeStampString = [NSString stringWithFormat:@"%@.%@",second,milliscond]; 9         NSTimeInterval _interval=[timeStampString doubleValue];10         NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];11 12         NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];13         NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];14         [dateFormatter setTimeZone:timeZone];15         [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];16         NSString *dateString = [dateFormatter stringFromDate:date];17 18         return dateString;19     }20     return @"";21 }
复制代码
复制代码

//13位时间戳1469193006001(毫秒)转 系统时间2016-08-11 08:55:36

复制代码
复制代码
 1 + (NSString *)timespToYMDFormat:(NSNumber *)timesp 2 { 3     NSString *stime = [timesp stringValue]; 4     NSTimeInterval time = [[stime substringToIndex:10] doubleValue]; 5     NSDate *detaildate=[NSDate dateWithTimeIntervalSince1970:time]; 6     NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 7     [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 8  9     return [dateFormatter stringFromDate: detaildate];10 }
复制代码
复制代码
//时间转时间戳的方法:sendDate为NSDate类
NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[sendDate timeIntervalSince1970]];

 如果只获取当前的年月日,用NSDate 直接截取是不对的,以下方法提供了获取当前的年月日等等

复制代码
 // 获取代表公历的NSCalendar对象    NSCalendar *gregorian = [[NSCalendar alloc]                             initWithCalendarIdentifier:NSCalendarIdentifierGregorian];    // 获取当前日期    // 定义一个时间字段的旗标,指定将会获取指定年、月、日、时、分、秒的信息    unsigned unitFlags = NSCalendarUnitYear |    NSCalendarUnitMonth |  NSCalendarUnitDay |    NSCalendarUnitHour |  NSCalendarUnitMinute |    NSCalendarUnitSecond | NSCalendarUnitWeekday;    // 获取不同时间字段的信息    NSDateComponents* comp = [gregorian components: unitFlags                                          fromDate:localeDate];    NSInteger year = comp.year;//下面是可以获取的内容 //@property NSInteger era;@property NSInteger year;@property NSInteger month;@property NSInteger day;@property NSInteger hour;@property NSInteger minute;@property NSInteger second;@property NSInteger nanosecond NS_AVAILABLE(10_7, 5_0);@property NSInteger weekday;@property NSInteger weekdayOrdinal;@property NSInteger quarter NS_AVAILABLE(10_6, 4_0);@property NSInteger weekOfMonth NS_AVAILABLE(10_7, 5_0);@property NSInteger weekOfYear NS_AVAILABLE(10_7, 5_0);@property NSInteger yearForWeekOfYear NS_AVAILABLE(10_7, 5_0);
复制代码