文档章节

日历 NSCalendar

我是华丽的笨笨
 我是华丽的笨笨
发布于 2016/01/08 16:35
字数 503
阅读 57
收藏 0

#import "ViewController.h"


@interface ViewController ()

@property (strong,nonatomic) NSCalendar *calender1;

@property (strong,nonatomic) NSCalendar *calender2;


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.


}


- (IBAction)tapBtn1:(id)sender

{

    self.calender1 = [NSCalendar currentCalendar];

    self.calender2 = [NSCalendar autoupdatingCurrentCalendar];

    

    NSLog(@"%@",self.calender1.calendarIdentifier);

    NSLog(@"%@",self.calender2.calendarIdentifier);

}



- (IBAction)tapBtn2:(id)sender

{

   

    NSLog(@"%@",self.calender1.calendarIdentifier);

    NSLog(@"%@",self.calender2.calendarIdentifier);

    

}


//根据提供的日历标示符初始化

- (IBAction)tapBtn3:(id)sender

{

    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSChineseCalendar];

    NSLog(@"%@",calendar.calendarIdentifier);                   

}


//设置本地化信息

- (IBAction)tapBtn4:(id)sender

{

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

    NSLocale *locale = [[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"];

    [calendar setLocale:locale];

    

    

    NSLog(@"%@",calendar.locale.localeIdentifier);

}


//设置时区信息

- (IBAction)tapBtn5:(id)sender

{

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

    [calendar setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"HKT"]];

    

    NSLog(@"%@",calendar.timeZone);

}


//设置每周的第一天从星期几开始

- (IBAction)tapBtn6:(id)sender

{

    NSCalendar *calendar = [NSCalendar currentCalendar];

    [calendar setFirstWeekday:3];

    NSLog(@"%lu",(unsigned long)calendar.firstWeekday);

}




//NSCalendar对象的 - (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)date

//取得一个NSDate对象的1个或多个部分,用NSDateComponents来封装

//需要注意的是,只有明确指定了unitFlagsNSDateComponents相应的那一部分才有值。

- (IBAction)tapBtn7:(id)sender

{

    NSCalendar *calendar = [NSCalendar currentCalendar];

    

    NSDate *date = [NSDate date];

    NSDateComponents *compt = [calendar components:(NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:date];

    

    NSLog(@"%ld,%@",(long)[compt year],date);

    NSLog(@"%ld,%@",(long)[compt month],date);

    NSLog(@"%ld,%@",(long)[compt day],date);

}


//NSCalendar对象的 - (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)startingDate toDate:(NSDate *)resultDate options : (NSUInteger)opts

//

//取得两个NSDate对象的时间间隔,用NSDateComponents来封装

- (IBAction)tapBtn8:(id)sender

{

    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSDate *date = [NSDate date];

    NSDate *date2 = [NSDate dateWithTimeInterval:5*60*60+75 sinceDate:date];

    NSDateComponents *compt = [calendar components:(NSMinuteCalendarUnit|NSSecondCalendarUnit) fromDate:date toDate:date2 options:0];

    

    NSLog(@"%ld",(long)[compt minute]);

    NSLog(@"%ld",(long)[compt second]);

}



//NSCalendar对象的 - (NSDate *)dateFromComponents:(NSDateComponents *)comps

//根据NSDateComponents对象得到一个NSDate对象


- (IBAction)tapBtn9:(id)sender

{

    NSDateComponents *compt = [[NSDateComponents alloc] init];

    [compt setYear:2012];

    [compt setMonth:5];

    [compt setDay:11];

    

    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSDate *date = [calendar dateFromComponents:compt];

    //得到本地时间,避免时区问题

    

    //获取当前时区

    NSTimeZone *zone = [NSTimeZone systemTimeZone];

    //以秒为单位返回当前应用程序与世界标准时间(格林尼治时间)的时差

    NSInteger interval = [zone secondsFromGMTForDate:date];

    //补充时差后为当前时间

    NSDate *localeDate = [date dateByAddingTimeInterval:interval];

    NSLog(@"%ld",(long)interval);

    NSLog(@"%@",localeDate);

}



@end


© 著作权归作者所有

我是华丽的笨笨
粉丝 1
博文 16
码字总数 14214
作品 0
石景山
私信 提问
ios时间那点事--NSCalendar NSDateComponents

iOS时间那点事 NSCalendar + NSDateComponents 历法能使人类确定每一日再无限的时间中的确切位置并记录历史。 日历,历法,一般历法都是遵循固定的规则的,具有周期性。日历都是已知的或可预...

JustBen
2013/08/22
0
5
ios 时间与日历

#pragma mark -Private //获取一个月多少天: (NSUInteger)numberOfDaysInMonth:(NSDate *)date{ NSCalendar *greCalendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIden......

Youth_关旋
2016/10/31
33
0
获取当前时间的时分秒

// 实例化日历对象 NSCalendar calendar = [NSCalendar currentCalendar]; // 获取当前时间的秒数 NSDateComponents comps = [calendar components:NSCalendarUnitSecond fromDate:[NSDate ......

马尔代夫的沙滩
2016/04/28
14
0
一篇文章吃透iOS、JS的时间日期(Date, Calendar, Locale, TimeZone)

iOS 时间相关类 NSDate - 表示一个绝对的时间点。 NSCalendar - 代表一个特定的日历,例如公历或者希伯来日历。它提供了一系列基于日期的计算,并且可以让你在"NSDate"和"NSDateComponents"对...

奶爸码农
2018/05/09
0
0
iOS时钟实现

时钟实现 1.首先来看看总体效果 2.先来实现秒针的变化 2.1先来看效果图片 2.2添加UIimageView加载图片,然后添layer 2.3添加一个定时器,不停旋转 3源代码详细地址 github...

AppleDream
2016/07/07
11
0

没有更多内容

加载失败,请刷新页面

加载更多

c++队列(转自本人csdn)

#include using namespace std;int main(){char input, alphabet = ‘A’;cout << "输入最后一个大写字母: ";cin >> input;for(int i = 1; i <= (input-'A'+1); ++i)......

WinkJie
30分钟前
1
0
外观模式(Facade)

//这篇写的可以 https://www.jianshu.com/p/f71051475e32

南桥北木
49分钟前
2
0
锤子科技确认卖身,官网微博均变更所属公司

年前曾有过消息,罗永浩创办的锤子科技将被今日头条和抖音的母公司字节跳动收购。其中的部分工作人员将随专利一同成为字节跳动所属,而罗永浩本人将离开锤子科技。 今天我们终于看到了锤子科...

linux-tao
56分钟前
2
0
[json]阿里fastjson1.2.24字符串转为json对象/数组

java.lang.ClassCastException: com.alibaba.fastjson.JSONArray cannot be cast to com.alibaba.fastjson.JSONObject at com.alibaba.fastjson.JSON.parseObject(JSON.java:206) 多行要用J......

Danni3
今天
1
0
关于jenkins 构建打包的技巧

关于jenkins 构建打包的技巧 jenkins是一个专业构建平台,在各大公司内部比较受欢迎,可以自定义构建方式,以下整理一些技巧,防止以后忘记。 邮件通知 jenkins 自带邮件通知功能,但是比较单...

shzwork
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部