/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • RSS订阅

C#将时间转化为ISO8601规范的UTC格式-百度原创星火计划published_time格式转换

2017-04-03 十有三 0 浏览:1万+ .NET技术 C#

最近研究了下百度的星火计划2.0,在为文章页面的meta标签标注发布时间时,遇到了一个C#的时间格式转化问题,需要将文章发布时间转化为ISO8601规范的UTC格式。由于比较少遇到这个知识点,就做个笔记记录下。

主要是看中了这个计划对原创的保护,可惜我的博客毕竟只是小站,没有办法加入测试。不过官方文档有提到星火计划以后会逐步推广到全网站点,就先做下准备把。由于我博客是自己用ASP.NET MVC编写的,根据官方的原创规范在文章页面添加一些标识也不是很难。

需要进行时间格式转换的字段是一个published_time字段(文章发布时间/最早发布时间,为必选字段!),详情建议看百度星火计划原创规范v2.0的说明:

关于published_time字段文档说明

根据文档的说明,标识的published_time必须是ISO8601规范的UTC格式,标准格式为“YYYY-MM-DDTHH:MM:SS+时区”。

PS:UTC(世界统一时间,世界标准时间,协调世界时),可以网上找下百科了解下。

假设当前某篇文章发布的时间是"2017-04-02 17:30:25",那么转化成标准UTC格式则为"2017-04-02T17:30:25+08:00"。因为我国的时间比世界统一时间快8小时,也就是+8的时差,后面的+08:00就是这个意思,注意添加字符"T"在日期和小时中间(无空格)。

这里稍微理解就好了,因为C#本身有提供时间转化的方法,所以不需要我们自己手动去换算。对于C#来说,通过ToString()方法的自定义日期和时间格式字符串就可以成功进行转换,主要是使用"zzz"自定义格式说明符,如下代码所示:

DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz");

上面这段代码就会将当前时间转换成UTC格式,这边贴下我在控制台进行测试的代码:

DateTime dt = DateTime.Now;
Console.WriteLine("当前时间-普通格式:{0}",dt.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine("当前时间-UTC格式:{0}", dt.ToString("yyyy-MM-ddTHH:mm:sszzz"));
Console.ReadKey();

最后输出结果如下:

普通格式和UTC格式的时间差别

另外还有"z","zz"和"o"格式说明符也可以将日期转换成UTC时间,不过与星火计划原创规范的要求略有不同,感兴趣的可以尝试下,我这边也顺便贴下这三个格式的效果:

其他可以转换UTC的自定义格式

最后提醒下,如果先用DateTime.ToUniversalTime()方法或者DateTime.UtcNow获取当前的UTC时间,再通过自定义时间格式转化是画蛇添足的,而且还会报错,引发DateTimeInvalidLocalFormat异常:


作者:十有三

出处:https://shiyousan.com/post/636266654464778243

版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。


  • 上一篇: 托管调试助手 "DateTimeInvalidLocalFormat":“正在将 UTC DateTime 转换为某种文本
  • 下一篇: 解决阿里云负载均衡网站打不开的问题-域名解析后IP无法ping通

相关文章
  • ASP.NET HTTP 状态字符串无效
  • C#中ADO.NET如何传递和设置like查询的参数
  • ASP.NET MVC 如何防御CSRF攻击(跨站请求伪造)
  • ASP.NET如何动态抛出指定状态代码的HTTP错误
  • 解决VS2013编码遇到无法嵌入互操作类型“ChinaPay_NET.NetPayClientClass”请改用适用的接口的问题
  • 解决网站出现GET .woff 404 (Not Found)的问题

文章分类

.NET技术 123 数据库 24 Web前端 21 网站建设运维 37 操作系统与应用 66 程序猿日常 11 开发工具 12 其他随笔 13

文章标签

ASP.NET ASP.NET MVC C# CSS HTML IIS Javascript Linux MongoDB MySql SQL SQL Server Visual Studio Windows系统 版本控制系统 插件工具 服务器 搞笑娱乐 好文分享 软件应用 生活知识 手机问题 随笔 网络知识 网站设计优化 网站维护 养生保健 异常处理 硬件设备 游戏攻略

热门文章

  • IIS8如何安装和使用URL重写工具-URL Rewrite
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • 解决IE11安装升级失败和在安装前需要更新的问题
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
  • VS重构重命名的快捷键

推荐文章

  • VS(Visual Studio)按键失灵无法按回车
  • Web 部署任务失败 未能使用指定的进程“Web Management Service”连接到远程计算机
  • 解决Win10微软拼音输入法与Visual Studio冲突-弹出表情包和无法在文件中查找
  • 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
  • 服务维护笔记:Windows Server 2012 R2 KB3000850补丁更新失败

友情链接

  • Passingwind的博客
  • 码友网

知识共享许可协议 CC BY-SA 4.0本站作品采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。
闽ICP备15003702号
闽公网安备 35020302035102号