国际标准化组织的国际标准ISO 8601是日期和时间的表示方法,维基百科关于ISO 8601解释的链接是:http://zh.wikipedia.org/wiki/ISO_8601

其中对日期和时间的表示方法如下:

        总概括:年由4位数组成,以公历公元1年为0001年,以公元前1年为0000年,公元前2年为-0001年,其他以此类推。应用其他纪年法要换算成公历,但如果发送和接受信息的双方有共同一致同意的其他纪年法,可以自行应用。

        日历日期表示法:年为4位数,月为2位数,月中的日为2位数,例如,日期(2012年11月12日)可表示为2012-11-12,或20121112。

        顺序日期表示法:可以将一年内的天数直接表示,平年365天,闰年366天。如2004年6月5日可以表示为2004-1572004157

        日历星期和日表示法:可以用2位数表示本年内第几个日历星期,再加上一位数表示日历星期内第几天,但日历星期前要加上一个大写字母W,如2004年5月3日可写成2004-W17-32004W173。以1月4日所在的那个星期为当年的第一个星期,如:2005年1月1日是2004-W53-6,2005年1月3日是2005-W01-1。每个日历星期从星期一开始,星期日为第7天。

        日的时间表示法:小时、分和秒都用2位数表示,对UTC时间最后加一个大写字母Z,其他时区用实际时间加时差表示。如UTC时间下午2点30分5秒表示为14:30:05Z143005Z,当时的北京时间表示为22:30:05+08:00223005+0800,也可以简化成223005+08

        日期和时间的组合表示法:合并表示时,要在时间前面加一大写字母T,如要表示北京时间2004年5月3日下午5点30分8秒,可以写成2004-05-03T17:30:08+08:0020040503T173008+08

        时间段表示法:如果要表示某一作为一段时间的时间期间,前面加一大写字母P,但时间段后都要加上相应的代表时间的大写字母。如在一年三个月五天六小时七分三十秒内,可以写成P1Y3M5DT6H7M30S

        重复时间表示法:前面加上一大写字母R,如要从2004年5月6日北京时间下午1点起重复半年零5天3小时,要重复3次,可以表示为R3/20040506T130000+08/P0Y6M5DT3H0M0S

对应的各地标准

  • 中华人民共和国国家标准GB/T 7408-2005《数据元和交换格式 信息交换 日期和时间表示法》与ISO 8601:2000等效采用。
  • 《中华民国国家标准》CNS 7648《资料元及交换格式·资讯交换·日期及时间的表示法》与ISO 8601类似,可用公元年,也可冠以大写R.O.C.字母用民国纪元。例如,2004年(中华民国九十三年)5月3日可写作2004-05-03R.O.C.93-05-03
  • 日本工业规格JIS X 0301:2002与ISO 8601:2000对应,但有修改。该标准写日期时用圆点(.)但非短横(-),可用公元年,也可对四种日本年号使用字首:
    • 明治(Meiji)可冠以M,自1868.01.01(同M01.01.01明01.01.01)起至1912.07.30(同M45.07.30明45.07.30)止。
    • 大正(Taisho)可冠以T,自1912.07.30(同T01.07.30大01.07.30)起至1926.12.25(同T15.12.25大15.12.25)止。
    • 昭和(Showa)可冠以S,自1926.12.25(同S01.12.25昭01.12.25)起至1989.01.07(同S64.01.07昭64.01.07)止。
    • 平成(Heisei)可冠以H,自1989.01.08(同H01.01.08平01.01.08)起至今。

 

在代码编写中

c#生成ISO 8601格式的方法是: DateTime.Now.ToString("s");

但是这个格式没有毫秒的值,所以自己又重新写了一个自定义格式:DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fff",DateTimeFormatInfo.InvariantInfo);

这个格式算是通用了,和语言文化无关,并且DateTime.Parse也能分析通过。

 

 

在SQL中

在 Microsoft SQL Server 2005 中,可以通过使用 ISO 8601 格式指定日期和时间数据。

格式:yyyy-mm-ddThh:mm:ss[.mmm]

T 表示后面是日期时间值的时间部分。

若要使用 ISO 8601 格式,必须按此格式指定每一个元素。这也包括格式中所示的标点符号。

注意:方括号表示秒成分的这个小数部分是可选的。时间成分以 24 小时格式指定。

使用 ISO 8601 格式的优势在于它是一个国际标准。另外,使用此格式指定的日期时间值很明确。同时,此格式不受 SET DATEFORMAT 设置或 SET LANGUAGE 设置的影响。