
首先要先对UTC、GMT、CST等时间概念有所了解
1 UTC(世界标准时间)
协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time”/法文“TempsUniversel Coordonné”而来),是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格
林尼治标准时间。
2 GMT(格林尼治平时)
众所周知,中国是北京时间东八区,英国是伦敦格林尼治时间零。伦敦时间才和格林尼治时间重合。2位最后胜出者在10月30日参加了在伦敦查尔斯王子官方居所克拉伦斯府举办的颁奖仪式,由查尔斯王子和皇家邮政首席执行官莫亚·格林颁奖。
地球公转的轨道(也就是公转所走的路线)是一个椭圆,地球在这个巨大的椭圆轨道上,绕太阳公转一周的时间为365日5时48分46秒,为天文上通常所说的一个回归年。“理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。1世界桥梁的河是巴拿马运河2`7个3`亚洲4`地球的公转,是地球围绕太阳的旋转,它公转的路线叫轨道,公转运行又称轨道运行.地球围绕太阳运行的轨道是近似正圆的椭圆,扁率为1/7000,太阳位于椭圆的两个焦点之一的位置上.因而地球在围绕太阳运转的过程中,距离是有变化的.根据地球围绕太阳的运行周期,每年1月3日前后地球距离太。
。由于地球每天的自转是有些不规则的,而且正在缓慢减速,因此格林尼治时间已经不再被作为标准时间使用。现在的标准时间,是由原子钟报时的协调世界时(UTC)。
3 CST(北京时间)
北京时间,China Standard Time,中国标准时间。在时区划分上,属东八区,比协调世界时早8小时,记为UTC+8。不过这个CST这个缩写比较纠结的是它可以同时代表四个不同的时间:
Central Standard Time (USA) UT-6:00
Central Standard Time (Australia) UT+9:30
China Standard Time UT+8:00
Cuba Standard Time UT-4:00
基本概念:
GMT 和 UTC 可以互换,但是实际上utc时间转换工具,GMT 是一个时区,而 UTC 是一个时间标准。
ISO8601
b)不注日期引用文件 在第2章 参考文献一览表引用文件的中文名称后面用括号 标出 当前最新版本的该国家标准编号 对应国际标准的 编号 英文名称 我国标准与国际标准一致时可省 和一 致性程度代号 例如 gb/t 20001.4标准编写规则 第4部分 化学分析方法 gb/t20001.4-2001, iso 78-2:1999,chemstrylayout for standards-part 2。小米5标准版是3gb内存+32gb存储,而小米5高配版为3gb内存+64gb存储,小米5陶瓷尊享版则是4gb内存+128gb存储,但要注意的是,标准的3gb内存(lpddr4)频率是1333mhz,而高配版和尊享版的3gb和4gb内存(都是lpddr4)频率都是1866mhz。系统平台:symbian系列s60第5版操作系统 9.4最新系统版本号:v51.1.002软件版本日期:2011-10-19定制版本:51.1.002.c01.01定制版本日期:2011-10-19语言设置:25类型标志符:rm-625非特定语者人名拨号 短信息同时删除多条短信息mms 1.3版。
日期和时间的组合表示法
日期和时间合并表示时,要在时间前面加一大写字母T,如要表示北京时间2004年5月3日下午5点30分8秒,可以写成2004-05-03T17:30:08+08:00或20040503T173008+08。
ISO8601与UTC的区别,其实两者完全是两个东西,通俗的说,iso8601是一种utc时间的表示方式而已。
本地时间 :UTC + (+0800) = 本地(北京)时间
时间戳 :时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
时间字符串
我们先说最复杂的时间字符串形式。它实际上支持两种格式:一种是 RFC-2822 的标准;另一种是 ISO 8601 的标准。我们主要介绍后一种。
RFC-2822标准格式大致是:Wed Mar 25 2015 09:56:24 GMT+0100
ISO 8601标准格式大致是:2018-05-23T16:05:52.123+08:00
以下会用到三种时间字符串表示形式,时间格式:
2018-05-23T16:05:52.123+08:00 //"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
2018-05-24 00:05:52 //"yyyy-MM-dd HH:mm:ss"
"eee, d mmm yyyy hh:mm:ss z"。 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)。week: "mmm d[ yyyy]{ '—'[ mmm] d yyyy}", // sep 7 - 13 2013。
ISO 8601
ISO 8601的标准格式是:YYYY-MM-DDTHH:mm:ss.sssZ,分别表示:

这里我们主要来说下 T、以及 Z。
T
将字符类型转换成数值类型的api函数:atoi、_atoi64或atol等,均值提供对char*的转换,所以对于cstring,可以先通过cstring::getbuffer函数返回对应的char*或者强制转换成lpcstr,string类型可以通过函数c_str()间接地完成对应数值类型的转换,下面着重讨论char*转换成数值类型的方法。例子4:(元素之间/标签之间的空行),只要把例子2中的空格换成空行就可以了,显示效果和例子2的一样,多行空行都只会显示为一个空格。gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
String utcTime = "2018-05-23 16:05:52";
String utcTimePatten = "yyyy-MM-dd HH:mm:ss";
String localTimePatten = "yyyy-MM-dd HH:mm:ss";
转换后:
2018-05-23 16:05:52 //"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
2018-05-24 00:05:52 //"yyyy-MM-dd HH:mm:ss"
Thu May 24 00:05:52 CST 2018 //"EEE MMM dd HH:mm:ss zzz yyyy"
String utcTime = "2018-05-23T16:05:52";
String utcTimePatten = "yyyy-MM-dd'T'HH:mm:ss";
String localTimePatten = "yyyy-MM-dd HH:mm:ss";
2018-05-23T16:05:52
2018-05-24 00:05:52
Thu May 24 00:05:52 CST 2018
计算的区时=已知区时-(已知区时的时区-要计算区时的时区),(注:东时区为正,西时区为负)。东西十二时区时刻相同,而日期相差 时区本初子午线——东、西经度数的分界线4、西经20和东经160——东、西半球的分界线5、180经线——地球上“今天”和“昨天”的人为分界线,即国际日期变更线,简称“日界线” 小时两地的时区差数时区本初子午线——东、西经度数的分界线4、西经20和东经160——东、西半球的分界线5、180经线——地球上“今天”和“昨天”的人为分界 线,即国际日期变更线utc时间转换工具,简称“日界线” 说明:若所求在已知地的东边,选用“+”,西边选用“—”。我国统一使用的标准时间就是北京时间.我国幅员辽阔,领土面积东西两端经差60多度,由西向东划分为东5区、东6区、东7区、东8区和东9区共5个时区.最东的地方和最西的地方,时间相差4个多小时.为了统一和工作上的方便,我国规定:首都北京所在时区(东8时区)的标准时为全国统一时间,称北京时间.。
Z
Z 用来表示传入时间的时区(zone),不指定并且没有使用 T 分隔而是使用空格分隔时,就按GMT时区处理,比如下面的例子:
String utcTime = "2018-05-23 16:05:52 ";
String utcTimePatten = "yyyy-MM-dd HH:mm:ss";
String localTimePatten = "yyyy-MM-dd HH:mm:ss";
2018-05-23 16:05:52
2018-05-24 00:05:52
Thu May 24 00:05:52 CST 2018
没有指定时区,默认为GMT时区,显示的时间会加上本地时区的偏移(8 小时)
String utcTime = "2018-05-23T16:05:52.000+00:00";
String utcTimePatten = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
String localTimePatten = "yyyy-MM-dd HH:mm:ss";
2018-05-23T16:05:52.000+00:00
2018-05-24 00:05:52
Thu May 24 00:05:52 CST 2018
因为指定时区GMT时区(偏移为 0),显示的时间会加上本地时区的偏移(8 小时)
String utcTime = "2018-05-23T16:05:52.000+08:00";
String utcTimePatten = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
String localTimePatten = "yyyy-MM-dd HH:mm:ss";
2018-05-23T16:05:52.000+08:00
2018-05-23 16:05:52
Wed May 23 16:05:52 CST 2018
东八区时间,显示的时间和传入的时间一致(因为我本地时区是东八区)。

将ISO8061格式的中的毫秒去掉,yyyy-MM-dd'T'HH:mm:ss.SSSXXX格式中的.SSS就是表示毫秒的意思
String utcTime = "2018-05-23T16:05:52+08:00";
String utcTimePatten = "yyyy-MM-dd'T'HH:mm:ssXXX";
String localTimePatten = "yyyy-MM-dd HH:mm:ss";
2018-05-23T16:05:52+08:00
2018-05-23 16:05:52
Wed May 23 16:05:52 CST 2018
yyyy-MM-dd'T'HH:mm:ss.SSSXXX格式中的XXX表示时区,一个X表示+08,三个X表示+08:00
String utcTime = "2018-05-23T16:05:52+08:30";
String utcTimePatten = "yyyy-MM-dd'T'HH:mm:ssX";
String localTimePatten = "yyyy-MM-dd HH:mm:ss";
2018-05-23T16:05:52+08:30
2018-05-23 16:05:52
Wed May 23 16:05:52 CST 2018
一个X只读取了时区+08:30中的+08,而30却别忽略了
String utcTime = "2018-05-23T16:05:52+08:30";
String utcTimePatten = "yyyy-MM-dd'T'HH:mm:ssXXX";
String localTimePatten = "yyyy-MM-dd HH:mm:ss";
2018-05-23T16:05:52+08:30
2018-05-23 15:35:52
Wed May 23 15:35:52 CST 2018
三个X,时间在原有的基础上又多了30分钟,所以XXX表示的是+08:30,而X只表示+08
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-116051-1.html
我记得那时俺年轻