zoukankan      html  css  js  c++  java
  • IOS --- 日期时间格式 更改

    1、怎样怎样将一个字符串如“ 20110826134106”装化为随意的日期时间格式。以下列举两种类型:

       NSString* string =@"20110826134106";
        NSDateFormatter*inputFormatter = [[[NSDateFormatter alloc] init]autorelease];

        [inputFormattersetLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]autorelease]];
        [inputFormattersetDateFormat:@"yyyyMMddHHmmss"];
        NSDate*inputDate = [inputFormatter dateFromString:string];
        NSLog(@"date= %@", inputDate);
        
        NSDateFormatter*outputFormatter = [[[NSDateFormatter alloc] init]autorelease]; 
        [outputFormattersetLocale:[NSLocale currentLocale]];
        [outputFormattersetDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒"];
        NSString*str = [outputFormatter stringFromDate:inputDate];
        NSLog(@"testDate:%@",str);
    两次打印的结果为:
     
       date= 2011-08-26 05:41:06 +0000
     
       testDate:2011年08月26日13时41分06秒

    2、iOS-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:毫秒

    经常使用日期结构:
    yyyy-MM-dd HH:mm:ss.SSS
    yyyy-MM-dd HH:mm:ss
    yyyy-MM-dd
    MM dd yyyy

    3:新浪微博接口中,取得日期字符串 的转换

    NSString*dateStr = @"Wed May 222:27:08+0800 2012";

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

       [formater setDateFormat:@"EEE MMM d HH:mm:sszzzz yyyy"];
        NSDate* date = [formaterdateFromString:dateStr];
        NSLog(@"%@",date);
       
        //NSDate* now = [NSDatenow];
        double inter = fabs([datetimeIntervalSinceNow]);
        if( inter <60)
           NSLog(@"1 mins ago!");
        else if(inter< 60*60)
           NSLog(@"1 hours ago!");
        else if(inter< 60*60*24)
           NSLog(@"1 days ago!");
           NSLog(@"interval is %f min", inter/60);

      上面代码在真机上执行后。发现取得date为NULL,模拟器正常显示。上网搜索后发现须要设置local, 果然设置后,真机正常

       NSLocale* local =[[[NSLocale alloc]initWithLocaleIdentifier:@"en_US"] autorelease];

       [formatter setLocale: local];

    4、自己定义显示的 星期 格式

       使用NSDateFormatter转换日期时,得到的英文字母的星期几仅仅能是这样,如Sun, Mon, etc.

       假设想得到大写字母的星期几,能够这样:


        NSArray*weekdayAry = [NSArray arrayWithObjects:@"SUN", @"MON", @"TUE",@"WED", @"THU", @"FRI", @"SAT", nil];


       dateFormatter = [[NSDateFormatter alloc] init];


       [dateFormatter setDateFormat:NSLocalizedString(@"YYYY.MM.dd.eee",nil)];


        //此处更改显示的大写字母的星期几
     
      [dateFormattersetShortWeekdaySymbols:weekdayAry];


       [dateFormatter setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"en_US"] ]];


        NString *str= [dateFormatter stringFromDate:[NSDate date]];

     

    5计算距离某一天还有多少时间

     

    NSDate* toDate   = [ [ NSDate alloc]initWithString:@"2012-9-29 0:0:00 +0600" ];  

    NSDate*  startDate  = [ [ NSDatealloc] init ];  

    NSCalendar* chineseClendar = [ [ NSCalendar alloc ]initWithCalendarIdentifier:NSGregorianCalendar ]; 

     

    NSUInteger unitFlags =  

    NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit |NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit; 

     

    NSDateComponents *cps = [chineseClendar components:unitFlagsfromDate:startDate toDate:toDate  options:0];  

     

    NSInteger diffHour = [cps hour];  

    NSInteger diffMin    = [cpsminute];  

    NSInteger diffSec   = [cps second]; 

    NSInteger diffDay   = [cps day]; 

    NSInteger diffMon  = [cps month]; 

    NSInteger diffYear = [cps year];  

     

    NSLog(  @" From Now to %@, diff: Years:%d  Months: %d, Days; %d, Hours: %d, Mins:%d,sec:%d",   

    [toDate description], diffYear, diffMon, diffDay, diffHour,diffMin,diffSec );  

       

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    Ryzom简易汉化教程
    在Windows上编译运行Ryzom客户端
    在Windows(x86)上编译、配置并运行Ryzom Core(服务器/客户端)
    引擎设计与商业模式
    总结了一下新手学习Windows 8 Metro App 开发的捷径
    开始研究Ryzom Core!
    和Ryzom相关的项目简介
    关于Ryzom游戏开发的路线图
    根据 yyyymmdd格式日期取得当前日期所在周的开始和结束日期
    asp数组中REDIM的用法(动态数组)
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4913590.html
Copyright © 2011-2022 走看看