日期格式:ddMMyy-hhmmss,格林威治时间转换成北京时间
有些项目需要第三方的接口来取数据,这样就有个问题,那就是有些字段比较特殊,采用的都是国际标准时间,方便别的语言调用,这样时间差就相差不一样了,需要进行转换。
例如:GPS的数据时间格式:ddMMyy-hhmmss 需要转换DateTime类型,如果用Convert.ToDateTime进行转换会报错,因为格式不正确,还有一种方式转换DateTime.ParseExact(date, "ddMMyy-hhmmss", CultureInfo.CurrentCulture),这种方式也是有问题,假如日期小时(hh)是凌晨:16到23这个时间段会报错。还有就是取来的接口数据不会自动补全天、月,比如:4月1日,可能第三方传给你的是dMyy,缺少0.
所以要解决比较好的方式可以选择解析日期:
如下代码:
调勇:
ToDateTime("080316-060553")
#region 格林威治时间转换成北京时间/// <summary>/// 格林威治时间转换成北京时间/// </summary>/// <param name="date">ddMMyy-hhmmss</param>/// <returns>DateTime</returns>public static DateTime ToDateTime(string date){var yyyy = "";var MM = "";var dd = "";var hh = "";var mm = "";var ss = "";var newDate = "";var nowDate = DateTime.Now;try{if (!string.IsNullOrEmpty(date) && date.Contains('-')){var dates = date.Split('-');var yyMMdd = dates[0];var hhmmss = dates[1];if (yyMMdd.Length == 6){yyyy = "20" + yyMMdd.Substring(4, 2);MM = yyMMdd.Substring(2, 2);dd = yyMMdd.Substring(0, 2);}else if (yyMMdd.Length == 5){yyyy = "20" + yyMMdd.Substring(3, 2);MM = yyMMdd.Substring(1, 2);dd = yyMMdd.Substring(0, 1);}else if (yyMMdd.Length == 4){yyyy = "20" + yyMMdd.Substring(2, 2);MM = yyMMdd.Substring(1, 1);dd = yyMMdd.Substring(0, 1);}if (hhmmss.Length == 6){hh = hhmmss.Substring(0, 2);mm = hhmmss.Substring(2, 2);ss = hhmmss.Substring(4, 2);}else{hh = nowDate.ToString("hh");mm = nowDate.ToString("mm");ss = nowDate.ToString("ss");}newDate = yyyy + "-" + MM.PadLeft(2, '0') + "-" + dd.PadLeft(2, '0') + " " + hh.PadLeft(2, '0') + ":" + mm.PadLeft(2, '0') + ":" + ss.PadLeft(2, '0');return Convert.ToDateTime(newDate).AddHours(8);//北京时间需要加8个小时}}catch (Exception ex){}return DateTime.Now;} #endregion
日期格式:ddMMyy-hhmmss,格林威治时间转换成北京时间相关推荐
- PostgreSQL | 将 timestamptz 格式的UTC时间转换成北京时间
PostgreSQL | 将 timestamptz 格式的UTC时间转换成北京时间 1.将UTC时间"2020-08-25 02:11:34.59741+00" 转换成北京时间( ...
- c语言 北京时间转换utc时间_UTC时间转换成北京时间C语言函数代码
UTC + 时区差 = 本地时间 时区差东为正,西为负.在此,把东八区时区差记为 +0800, UTC + (+0800) = 本地(北京)时间 (1) 那么,UTC = 本地时间(北京时间))- 0 ...
- UTC时间转换成北京时间C语言函数代码
UTC + 时区差 = 本地时间 时区差东为正,西为负.在此,把东八区时区差记为 +0800, UTC + (+0800) = 本地(北京)时间 (1) 那么,UTC = 本地时间(北京时间))- 0 ...
- python UTC时间转换成北京时间
UTC时间转成北京时间: 例如:2020-04-26T03:02:01Z 转成 2020-04-26 11:02:01 时差问题:UTC+8=北京时间 from datetime import dat ...
- 格林威治时间转换成北京时间
解析rss订阅内容时候,发现pubDate是格林威治时间格式,在手册上找到这个函数,收藏 gmstrtotime($sgm) {$months = array('Jan'=>1,'Feb'=&g ...
- 格林威治时间转换成北京时间,Mon May 10 2021 15:34:42 GMT+0800 (中国标准时间) TO 2021/5/10
public class DateUtil {public final static String FORMAT_STRING = "yyyy-MM-dd HH:mm:ss";pu ...
- java输出格林威治时间_Java之格林威治时间格式转换成北京时间格式
Java之格林威治时间格式转换成北京时间格式 /** * Copyright 2020. yaodouwang.com Studio All Right Reserved * * Create on ...
- 将Json转换过来的带T的字符串格式的时间转换成正常时间,并通过指定格式输出
java中时间接受Json转换时间格式很讨厌,因为json转换的时间带有"T",导致转换时间出错.我提供了下面方法可以转换时间并传出指定格式时间: /*** 将Json转换过来的带 ...
- 将本地时间转换成 UTC 时间,0时区时间
// 将时间戳转换成日期格式: function timestampToTime(timestamp) { var date = new Date(timestamp);//时间戳为10位需*1000 ...
最新文章
- Load balancer does not have available server for client
- VC++ 中ListCtrl经验总结
- 浅析人工智能的数学基础(文末送书!)
- $* $@ $# $? $$ $! $0 $_
- Ubuntu下安装Oracle11g(图文教程)
- 去掉左边0_SLAM从0到1——11. 视觉里程计VO内容框架
- linux 内核编译需要多大空间,编译2.6.28内核出错。。。。空间不足。而/tmp/还有好几G...
- JEECG 官方微博账号
- 苹果抄袭豌豆射手实锤!AirPods Pro又被玩坏了...
- 开源PaaS Rainbond发布v3.7.2版本,帮助企业快速构建应用市场
- mysql 8.X主从复制
- LINUX Telepresence编译详细过程记录
- 如何把Backtrack 5安装到U盘/Backtrack 4安装方法
- Spring Boot使用WebSocket实现群聊
- WARN: Establishing SSL connection without server‘s identity verification is not recommended
- centos7安装部署kvm,照做就行
- 迅为STM32MP157开发板使用手册更新啦
- Flutter AppBar设置渐变色背景
- FVCOM 环境基础配置(1) intel编译器 下载与安装
- 抓取图片拼接成全景图
热门文章
- 工厂进销存软件哪家好,有没有适合服装厂使用的?
- FMSoft uniGUI Professional 1.90.0.1564 Crack
- 【渝粤教育】广东开放大学 人际沟通实务 形成性考核 (49)
- 论文阅读 新的非视距场景(imaging behind occluders)|| ECCV 2020: Imaging Behind Occluders Using Two-Bounce Light
- Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day25】—— JVM1
- 最优化基础理论与方法——2.1最优性条件
- window 杀掉java进程_Windows下杀死顽固进程两招(转载)
- show databases不能正确显示的问题
- css层叠样式表基础学习笔记--第五章 文本属性
- Oad在线检测tra