/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • 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通

相关文章
  • AntiForgeryToken生成过程解析-ASP.NET MVC防伪标记源码学习[上]
  • C#使用正则表达式替换字符串中的多个字符或符号
  • 解决ASP.NET“从客户端***中检测到有潜在危险的 Request.Form值。”错误
  • C# List.ForEach方法结合匿名函数的便捷使用
  • 解决ASP.NET MVC异常:提供的防伪标记适用于用户“*”,但当前用户为“”
  • C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串

文章分类

.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安装升级失败和在安装前需要更新的问题
  • VS重构重命名的快捷键
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件

推荐文章

  • ASP.NET 动态设置 HTTP 500 引发内部服务器错误
  • JavaScript isNaN() 函数
  • SQL Server备份出现System.Data.SqlClient.SqlError:无法打开备份设备
  • Visual Studio 2017 如何打开调试的诊断工具
  • ChinaPay踩坑笔记一:在64位系统中不支持ASP支付功能

友情链接

  • Passingwind的博客
  • 码友网

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