小白C++入坑学废之旅(六)

真正展现技术的时候到了。今天会展示时间魔法里的一点高级货:如何获得本地系统所在时区的偏移量,也就是我们通常所说的time zone offset。另外一个是如何根据从1970年1月1日到今为止总的天数/毫秒数计算获得日期(格里高利历,我们称为公历)。

再开始具体展现时间魔法之前,我稍微回顾一下和时间相关联的几个地理和历史知识。

时区

首先,是关于时区的。我们都知道不同的地方使用的时间是不一样的。例如在中国我们通常使用的是北京时间,而在美国会使用纽约时间。从时区的角度讲,前者属于东八区,后者属于西五区,两者相差13个小时。受地球自转影响,太阳在地球上不同地方升起的时间有早晚,因此全球沿着经度划分了24个时区,相邻的时区时间上会差上一个小时。而时区的划分通常需要一个基准时间,我们叫做格林尼治标准时间,专业英文简写为GMT或者UTC。而北京时间即东八区时间又可以表示为GMT+8或者UTC+8。所以你在使用Java或者JavaScript打印时间看到“Wed Nov 23 2022 21:35:57 GMT+0800”这样的时间戳文本就应该对其中的“GMT+0800”这样的字样不会感到奇怪了。

格里高利历

格里高利历,又称公历,是现今全球使用的通用历法。最早记载据传是由意大利医生兼哲学家Aloysius Lilius从儒略历等古代历法改进过来的。最后在1582年,由时任罗马教皇格里高利十三世批准推行,故此,称为格里高利历。格里高利历是从1年1月1日开始,这一天也称为公元元年,据传说是耶稣诞生的日子,但是无从得知。

1970年1月1日

1970年1月1日,这是一个特殊的日期。很多熟悉Java或者JavaScript的程序员肯定对它不会陌生。如果你需要处理时间,那么就免不了和它打交道。因为Java或者JavaScript甚至是C++里,所有的时间都是从1970年1月1日开始计时的。那么为什么不使用公历元年或者某个重要的特殊日子呢?这

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值