• iOS_OC NSDate / NSString 相互转换


    1 时间的获取

      NSDate *date = [NSDate date]; 获取GMT时间。

      NSTimeZone *zone =  [NSTimeZone systemTimeZone]; 获得系统时区

        NSTimeZone *localTime = [NSTimeZone localTimeZone]; 获取本地时区

      NSInteger timeOff = [zone secondsFromGMT]; zone时区和格林尼治时间差

      NSDate *timeOffDate = [date dateByAddingTimeInterval:timeOff]; 时间转换

      注:GMT 0:00 格林威治标准时间; UTC +00:00 校准的全球时间; CCD +08:00 中国标准时间 [来自百度百科]

    2 获取当前时间的各种信息

      NSCalendar *calendar = [NSCalendar currentCalendar];

      NSDate *startDate = [NSDate new];

      NSDateComponents *dateComps = [cal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:startDate];

      int year = [dateComps year];

      int month = [dateComps month];

      int day = [dateComps day];

      int hour = [dateComps hour];

      int minute = [dateComps minute];

      int second = [dateComps second];

      NSLog(@"%d-%d-%d-%d-%d-%d",year,month,day,hour,minute,second);   显示的是本地时区的时间

      NSDate *newDate = [cal dateFromComponents:dateComps];    这个时间是GTM时间

      NSRange range = [calendarrangeOfUnit:NSDayCalendarUnitinUnit:NSMonthCalendarUnitforDate:[NSDatedate]];

      NSUInteger numberOfDaysInMonth = range.length;   获取当前月份的天数

    3 NSString/NSDate 之间的转换

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

      [dataFormant setDateFormat: @"yyyy-MM-dd HH:mm:ss.S"];   

      NSString *dateStr = [dataFormant stringFromDate:[NSDate new]]; 显示:2016-10-31 10:21:30.5

      两者之间的转换都用到了了NSDateFormatter,类型差不多,设置好格式后,用stringFromDate或者dateFromString进行转换

      注意:NSString转NSDate时,注意待转换的NSString格式应该和设置的转换格式相同。

      格式化参数如下:
      G: 公元时代,例如AD公元
      yy: 年的后2位
      yyyy: 完整年  
      MM: 月,显示为1-12
      MMM: 月,显示为英文月份简写,如 Jan//跟系统语言版本有关系,中文显示“3月”,英文显示“Jan”

      MMMM: 月,显示为英文月份全称,如 Janualy//跟系统语言版本有关系,中文显示“3月”,英文显示“Jan”

      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: 毫秒

      

     

  • 相关阅读:
    thinkPHP 远程数据库和远程连接数据库表名大小写混合
    浏览器兼容性的问题
    input 的那些事
    jquery ui draggable失效的问题
    thinkphp在php5.6以上版本显示"No input file specified"
    ajax dataType
    DOM对象的处理
    ubuntu 16.4 中eth0添加ip地址,且可以上网
    linux 安装phpstudy
    select样式清除
  • 原文地址:https://www.cnblogs.com/lizhen24/p/6014961.html
Copyright © 2020-2023  润新知