zoukankan      html  css  js  c++  java
  • NSTimeZone时区

    前言

    • NSTimeZone 表示时区信息。

    1、NSTimeZone 时区的创建

    NSTimeZone *zone1 = [[NSTimeZone alloc] init];
    
    // 根据时区名称创建
    NSTimeZone *zone2 = [[NSTimeZone alloc] initWithName:@"America/Chicago"];
    NSTimeZone *zone3 = [NSTimeZone timeZoneWithName:@"America/Chicago"];
    
    // 根据时区缩写创建
    NSTimeZone *zone4 = [NSTimeZone timeZoneWithAbbreviation:@"EST"];
    
    // 根据零时区的秒数偏移量创建
    NSTimeZone *zone5 = [NSTimeZone timeZoneForSecondsFromGMT:28800];
    

    2、NSTimeZone 时区的设置

    // 设置默认的时区
    [NSTimeZone setDefaultTimeZone:[[NSTimeZone alloc] initWithName:@"America/Chicago"]];
    
    NSTimeZone *systemZone = [NSTimeZone systemTimeZone];
    
    // 本地时区可以被修改,而系统时区不能修改。
    NSTimeZone *localZone = [NSTimeZone localTimeZone];
    
    NSTimeZone *defaultZone = [NSTimeZone defaultTimeZone];
    
    // NSCalendar 设置时区
    /*
    设置时区,设置为 GMT+8,即北京时间(+8)
    */
    NSCalendar *calendar = [NSCalendar currentCalendar];
    
    [calendar setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CET"]];
    [calendar setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:+28800]];
    
    // NSDateFormatter 设置时区
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    
    // 设置时区,设置为 GMT
    [formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    

    3、NSTimeZone 时区的获取

    // 获取系统时区
    NSTimeZone *zone1 = [NSTimeZone systemTimeZone];
    
    // 获取本地时区
    NSTimeZone *zone2 = [NSTimeZone localTimeZone];
    
    // 获取默认时区
    NSTimeZone *zone3 = [NSTimeZone defaultTimeZone];
    

    4、获取时区的名称

    // 获取所有已知的时区名称
    NSArray *zoneNames = [NSTimeZone knownTimeZoneNames];
    
    NSTimeZone *zone = [NSTimeZone localTimeZone];
    
    // 获取指定时区的名称
    NSString *strZoneName = [zone name];
    

    5、获取时区的缩写

    // 获取所有已知的时区缩写
    NSDictionary *zoneAbbreviations = [NSTimeZone abbreviationDictionary];
    
    NSTimeZone *zone = [NSTimeZone localTimeZone];
    
    // 获取指定时区的缩写
    NSString *zoneAbbreviation1 = [zone abbreviation];
    
    // 获取指定时间所在时区名称缩写
    NSString *zoneAbbreviation2 = [zone abbreviationForDate:[NSDate date]];
    

    6、获取与零时区的间隔秒数

    NSTimeZone *zone = [NSTimeZone localTimeZone];
    
    // 获取当前时区与零时区的间隔秒数
    NSInteger seconds1 = [zone secondsFromGMT];
    
    // 获取指定时间所在时区与零时区的间隔秒数
    NSInteger seconds2 = [zone secondsFromGMTForDate:[NSDate date]];
    

    7、时区差值转换

    // 得到当前时间(世界标准时间 UTC/GMT)
    NSDate *date = [NSDate date];
    
    // 设置系统时区为本地时区
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    
    // 计算本地时区与 GMT 时区的时间差
    NSInteger interval = [zone secondsFromGMT];
    
    // 在 GMT 时间基础上追加时间差值,得到本地时间
    date = [date dateByAddingTimeInterval:interval];
    
  • 相关阅读:
    列举ASP.NET 页面之间传递值的几种方式?
    Ajax 完整教程
    ajax 传值,Ajax: Asynchoronous Javascript and xml (异步的js和xml). 异步刷新,异步传递.替代表单提交数据,回调函数处理返回的数据
    Webform 翻页查询.最主要理解这一句代码 return _Context.ChinaStates.Skip((nowpage
    datalist 的用法。也是增删改查,但是比较智能。用数据绑定的方式,可以有不同的显示方法,下面是对一个表的增删改查的参考代码
    bzoj 2705: [SDOI2012]Longge的问题 歐拉函數
    bzoj 1096: [ZJOI2007]仓库建设 斜率優化
    HJA的异或值
    Contest 20140914 Mushroom写情书 字符串雙hash 後綴數組
    Contest 高数题 樹的點分治 樹形DP
  • 原文地址:https://www.cnblogs.com/CH520/p/9448238.html
Copyright © 2011-2022 走看看