iOS开发之基础篇(10)—— NSDate

版本

Xcode 8.2.1

没什么可说的,直接上代码吧。注意实例化日期解析器和设置它的格式。等到后面写到UI篇的时候再提及。

int main(int argc, char * argv[]) {

    //时间戳:计算机元年(1970年1月1日)距离当前时间的总秒数
    //服务器给时间时(如截止日期),最好给时间戳,比较好处理
    //日期解析器:将日期按某种格式输出
    //默认时区:格林威治标准时间GMT

    //获取计算机当前的时间(GMT)
    NSDate *currentDate = [NSDate date];
    NSLog(@"格林威治标准时间GMT:%@",currentDate);

    //日期解析器
    NSDateFormatter *dateFormatter = [NSDateFormatter new];

    //设置时区
    dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"Beijing"];
//    dateFormatter.timeZone = [NSTimeZone systemTimeZone];     //与设备系统时区一致

    //设置日期格式
    dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    //可删掉不需要的,“-”可换成其他字符,如“:”
    dateFormatter.dateFormat = @"yyyy:MM:dd HH:mm:ss";

    //把NSDate对象转换成字符串输出
    NSString *dateStr = [dateFormatter stringFromDate:currentDate];
    NSLog(@"当前北京时间:%@",dateStr);

    //把字符串转换成NSDate对象
    NSDate *distanceDate = [dateFormatter dateFromString:@"2033:03:03 15:33:33"];    //格式需与之前设置的dateFormat一样
    if (distanceDate) {
        //转换成功
        //计算两个时间相差的总秒数
        NSInteger seconds = [currentDate timeIntervalSinceDate:distanceDate];
        NSLog(@"剩余%ld天%ld小时%ld分%ld秒到期",seconds/(3600*24),seconds%(3600*24)/3600,seconds%3600/60,seconds%60);
        //距离现在的时间
        NSInteger seconds1 = distanceDate.timeIntervalSinceNow;
        NSLog(@"距离现在有%ld秒",(long)seconds1);
        //距离1970年时间
        NSInteger seconds2 = distanceDate.timeIntervalSince1970;
        NSLog(@"距离1970年有%ld秒",(long)seconds2);
    }
}

注意: 日期格式中, 年使用小写yyyy, 因为当你使用大写YYYY, 如果12月的最后一周有下一年的1月1日的话, 得到的结果是下一年的, 如2017年却获得2018年; 小时使用大写"HH", 这时获取的是24小时制的, 如晚上8点获得20; 如果使用小写"hh", 且用户在手机设置里把时间调为12小时制的话, 获取到的时间是12小时制的, 如晚上8点获得8.

我的结果:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,413评论 25 707
  • 同步:synchronized同步的概念就是分享,共享,如果不是共享的资源,就没有必要进行同步。 异步:async...
    养码哥阅读 2,022评论 0 3
  • 从小,我就是一个自卑的人。 以前,知道自卑却无从改起。现在,我正在努力改。一切已经定型,前路艰辛。 作为女孩,最大...
    连城城阅读 408评论 0 2
  • 开始画太一没想过要集齐全部,慢慢的过了好久也一个一个画完了,还有很多画的不好的地方,但是看到自己画的他们还是很开心...
    古月月_kris阅读 411评论 0 0