ios时间格式转换

  1 //实例化一个NSDateFormatter对象
  2 
  3 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  4 
  5 //设定时间格式,这里可以设置成自己需要的格式
  6 
  7 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  8 
  9 //用[NSDate date]可以获取系统当前时间
 10 
 11 NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];
 12 
 13 //输出格式为:2010-10-27 10:22:13
 14 
 15 NSLog(@"%@",currentDateStr);
 16 
 17 //alloc后对不使用的对象别忘了release
 18 
 19 [dateFormatter release];
 20 
 21 ///根据时间字符串获得当前星期几--
 22 
 23  -(void)GetTime
 24 
 25     { 
 26 
 27         //根据字符串转换成一种时间格式 供下面解析
 28 
 29        NSString* string = @"2013-07-16 13:21";
 30 
 31        NSDateFormatter *inputFormatter = [[[NSDateFormatter alloc] init]autorelease];
 32 
 33         [inputFormattersetDateFormat:@"yyyy-MM-dd HH:mm"];
 34 
 35        NSDate* inputDate = [inputFormatter dateFromString:string];
 36 
 37         
 38 
 39         NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]autorelease];
 40 
 41         NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];
 42 
 43        NSInteger unitFlags = NSYearCalendarUnit |
 44 
 45         NSMonthCalendarUnit |
 46 
 47         NSDayCalendarUnit |
 48 
 49         NSWeekdayCalendarUnit |
 50 
 51         NSHourCalendarUnit |
 52 
 53         NSMinuteCalendarUnit |
 54 
 55         NSSecondCalendarUnit;
 56 
 57         
 58 
 59         comps = [calendarcomponents:unitFlags fromDate:inputDate];
 60 
 61        int week = [comps weekday];
 62 
 63        NSString *strWeek = [self getweek:week];
 64 
 65        self.textfield.text = strWeek;
 66 
 67        NSLog(@"week is:%@",strWeek);
 68 
 69     }
 70 
 71     -(NSString*)getweek:(NSInteger)week
 72 
 73     {
 74 
 75        NSString*weekStr=nil;
 76 
 77        if(week==1)
 78 
 79         {
 80 
 81             weekStr=@"星期天";
 82 
 83         }else if(week==2){
 84 
 85             weekStr=@"星期一";
 86 
 87             
 88 
 89         }else if(week==3){
 90 
 91             weekStr=@"星期二";
 92 
 93             
 94 
 95         }else if(week==4){
 96 
 97             weekStr=@"星期三";
 98 
 99             
100 
101         }else if(week==5){
102 
103             weekStr=@"星期四";
104 
105             
106 
107         }else if(week==6){
108 
109             weekStr=@"星期五";
110 
111             
112 
113         }else if(week==7){
114 
115             weekStr=@"星期六";
116 
117             
118 
119         }
120 
121        return weekStr;
122 
123     }

 

 

         各种时间字符说明

         (:)

         时间分隔符。在某些区域设置中,可以使用其他字符表示时间分隔符。时间分隔符在格式化时间值时分隔小时、分钟和秒。格式化输出中用作时间分隔符的实际字符由您的应用程序的当前区域性值确定。

         (/)

         日期分隔符。在某些区域设置中,可以使用其他字符表示日期分隔符。日期分隔符在格式化日期值时分隔日、月和年。格式化输出中用作日期分隔符的实际字符由您的应用程序的当前区域性确定。

         (%)

         用于表明不论尾随什么字母,随后字符都应该以单字母格式读取。也用于表明单字母格式应以用户定义格式读取。有关更多详细信息,请参见下面的内容。

         d

         将日显示为不带前导零的数字(如 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %d。

         dd

         将日显示为带前导零的数字(如 01)。

         EEE

         将日显示为缩写形式(例如 Sun)。

         EEEE

        将日显示为全名(例如 Sunday)。

         M

         将月份显示为不带前导零的数字(如一月表示为 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %M。

         MM

        将月份显示为带前导零的数字(例如 01/12/01)。

         MMM

         将月份显示为缩写形式(例如 Jan)。

         MMMM

        将月份显示为完整月份名(例如 January)。

         gg

        显示时代/纪元字符串(例如 A.D.

         h

         使用 12 小时制将小时显示为不带前导零的数字(例如 1:15:15 PM)。如果这是用户定义的数字格式中的唯一字符,请使用 %h。

         hh

        使用 12 小时制将小时显示为带前导零的数字(例如 01:15:15 PM)。

         H

         使用 24 小时制将小时显示为不带前导零的数字(例如 1:15:15)。如果这是用户定义的数字格式中的唯一字符,请使用 %H。

         HH

         使用 24 小时制将小时显示为带前导零的数字(例如 01:15:15)。

         m

         将分钟显示为不带前导零的数字(例如 12:1:15)。如果这是用户定义的数字格式中的唯一字符,请使用 %m。

         mm

        将分钟显示为带前导零的数字(例如 12:01:15)。

         s

         将秒显示为不带前导零的数字(例如 12:15:5)。如果这是用户定义的数字格式中的唯一字符,请使用 %s。

         ss

        将秒显示为带前导零的数字(例如 12:15:05)。

         f

         显示秒的小数部分。例如,ff将精确显示到百分之一秒,而 ffff 将精确显示到万分之一秒。用户定义格式中最多可使用七个 f符号。如果这是用户定义的数字格式中的唯一字符,请使用 %f。

         t

         使用 12 小时制,并对中午之前的任一小时显示大写的 A,对中午到 11:59 P.M之间的任一小时显示大写的 P。如果这是用户定义的数字格式中的唯一字符,请使用 %t。

         tt

         对于使用 12 小时制的区域设置,对中午之前任一小时显示大写的 AM,对中午到 11:59 P.M之间的任一小时显示大写的 PM。

         对于使用 24 小时制的区域设置,不显示任何字符。

         y

         将年份 (0-9)显示为不带前导零的数字。如果这是用户定义的数字格式中的唯一字符,请使用 %y。

         yy

         以带前导零的两位数字格式显示年份(如果适用)。

         yyy

         以四位数字格式显示年份。

         yyyy

         以四位数字格式显示年份。

         z

         显示不带前导零的时区偏移量(如 -8)。如果这是用户定义的数字格式中的唯一字符,请使用 %z。

         zz

         显示带前导零的时区偏移量(例如 -08)

         zzz

        显示完整的时区偏移量(例如 -08:00

        格式显示

         M/d/yy

        12/7/58

         d-MMM

        7-Dec

         d-MMMM-yy

        7-December-58

         d MMMM

        7 December

         MMMM yy

         December58

         hh:mm tt

        08:50 PM

         h:mm:ss t

        8:50:35 P

         H:mm

        20:50

         H:mm:ss

        20:50:35

         M/d/yyyy H:mm

        12/7/1958 20:50

转载于:https://www.cnblogs.com/520gp-iOS/p/4811373.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值