有什么简便方法把yyyyMMddhhmmssZ这样的时间格式字符串转成DateTime

ylhyh 2012-07-31 12:17:02
如:20120731092230Z
...全文
995 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxjltan 2012-07-31
  • 打赏
  • 举报
回复
先用substring先截取有效的时间数据,再用datetime.parse转换就行了.
popo0762 2012-07-31
  • 打赏
  • 举报
回复
2楼正解.
chinnsyuutou 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

看样子我该用24小时值的格式串:yyyyMMddHHmmssZ
[/Quote]
这个时间会只剩年月日,而且日还是+1的
用下面的试试

DateTime dtdt = DateTime.ParseExact(date, "yyyyMMddHHmmssZ", null,DateTimeStyles.AdjustToUniversal );
chinnsyuutou 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

var dt = DateTime.ParseExact("20120731092230Z", "yyyyMMddhhmmssZ", null);
[/Quote]
将hh改成HH试试,貌似hh是12小时制的,你的16时应该用24小时制的
ylhyh 2012-07-31
  • 打赏
  • 举报
回复
看样子我该用24小时值的格式串:yyyyMMddHHmmssZ
ylhyh 2012-07-31
  • 打赏
  • 举报
回复
用字符串"20120731092230Z"就没问题,可以转换成功,"20100317160000Z"是我从LDAP 服务器上得到的一个时间值,格式不合法吗?
ylhyh 2012-07-31
  • 打赏
  • 举报
回复
直接转换出错 -- String was not recognized as a valid DateTime.


string date = "20100317160000Z";
DateTime dtdt = DateTime.ParseExact(date, "yyyyMMddhhmmssZ", null);
Change_L 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

var dt = DateTime.ParseExact("20120731092230Z", "yyyyMMddhhmmssZ", null);
[/Quote]
++
bdmh 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

var dt = DateTime.ParseExact("20120731092230Z", "yyyyMMddhhmmssZ", null);
[/Quote]
正解

ParseExact使用指定的格式和区域性特定格式信息,将日期和时间的指定字符串表示形式转换为其等效的 DateTime。字符串表示形式的格式必须与指定的格式完全匹配。
机器人 2012-07-31
  • 打赏
  • 举报
回复
var dt = DateTime.ParseExact("20120731092230Z", "yyyyMMddhhmmssZ", null);

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧