use*_*726 4 iso8601 date-format momentjs
我正在进行REST调用,我需要以"2006-09-01T07:00:00.000 + 0000"格式发送日期.
用户以"YYYY/MM/DD"格式输入日期,我使用"moment.js"格式化ISO 8601中的日期,格式为"YYYY-MM-DDTHH:MM:SS.MMMZ".但它给了我这个输出"1969-06-20T00:06:00.Jun-07:00".
那么,如何使用moment.js或Javascript以这种格式"2006-09-01T07:00:00.000 + 0000"获取日期?
是的,它是ISO 8601. 2006-09-01T07:00:00.000+0000是2006年第9个月的第一天,7小时0分,0.000秒,距离UTC 0小时.是否允许小数取决于交换日期的各方(这是ISO的一种奇特的方式,称"它是可选的").
4.2.2.4带小数部分的表示法
如果特定应用需要,可以包括小时,分钟或秒的小数部分.如果包含小数部分,则应省略低阶时间元素(如果有),小数部分应从整数部分除以ISO 31-0中指定的小数符号,即逗号[,]或句号[ ].其中,逗号是首选标志.如果数字的大小小于1,则小数符号应在3.6之前加上两个零.
根据申请,交换方应同意小数部分中的位数.格式应为[hhmmss,ss],[hhmm,mm]或[hh,hh],视情况而定(小时分钟秒,小时分钟和小时),小数点后必须有多少位数.小数部分应至少有一位数.在下面的例子中,已经同意给出最小的时间元素一位小数.
(正如@chansen所指出的那样,技术上它应该是2006-09-01T07:00:00.000+00:00时区上的分隔符,因为根据4.3.3(d),每个部分必须使用基本格式(无分隔符)或扩展格式(带分隔符),但没有人为此烦恼,strptime无法生成那种格式,你可能会打破一些ISO 8601解析器).
Javascript和moment.js的其他答案都涵盖了输出.
Javascript具有Date.toISOString用于输出.Date.new也将接受ISO 8601字符串.每个最近的浏览器都应该支持它,尽管Internet Explorer仅在版本9中添加它(IE 8仍然代表5%的桌面用户).
这是关于字符串格式的moment.js文档. YYYY-MM-DDTHH:MM:SS.MMMZ是不正确的,因为你M用来表示三种不同的东西.你想要的是什么YYYY-MM-DDTHH:mm:ss.SSSZZ.
| 归档时间: |
|
| 查看次数: |
6604 次 |
| 最近记录: |