码迷,mamicode.com
首页 > 其他好文 > 详细

处理DateTime.Now不经过ToString()转换的格式(带有AM、PM)问题

时间:2018-08-17 17:48:15      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:nal   tail   default   regedit   后台数据库   .net   targe   net   时间   

问题是这样的:

DateTime.Now不经过ToString()转换,网站部署到测试服务器(国内)得到的时间格式是:2018/8/17 16:26:09,而部署到国外服务器得到的时间格式是:17/8/2018 4:43:15 PM,由于国外服务器得到的时间格式后面带有AM、PM,导致SQL执行错误,插入或修改记录失败。网上搜索了很多都没有找到解决方法,问题困扰了好几天,后来终于搜到一个方法,终于问题解决了,现特地把解决的参考方法记录下,希望对遇到类似问题的朋友有所帮助。

我的解决方法:

1、修改注册表的时间格式:运行-regedit-/HKEY_USERS/.DEFAULT/Control Panel/International,然后在右边的sShortDate右键,修改为数值数据为yyyy/M/d(原来是m/M/yyyy),原来sShortTime原来是h:mm tt,修改为H:mm。时间带有AM、PM的原因就是因为时间格式有tt。

2、重启IIS

 

处理方法参考CSDN博友queenpong的原文:https://blog.csdn.net/queenpong/article/details/79399730

公司的项目,部分电脑发布到IIS之后,凡是往后台数据库传入时间(不经过ToString()转换)都是带有星期的,造成SQL执行错误,项目中大部分是这样使用的,不想通过修改程序去处理经查网上的修改方式都不起作用,解决方法如下:

一、修改控制面板区域和语言控制

在“控制面板”,在“区域和语言选项”中找到了“格式”设置,然后把短日期改成yyyy-M-D。

经测试无效。

二、修改注册表

/HKEY_USERS/.DEFAULT/Control Panel/International      修改右侧sDate值为 - (可改可不改)      修改右侧sShortDate值为 yyyy-M-d (就是删掉后面的 dddd) 最后重启IIS。

经测试无效。

三、修改所有注册表

方法同二,只不过需要查询注册表中所有sShortDate,将默认格式为yyyy/M/d dddd,修改为yyyy-MM-dd ,修改后不要忘记重启IIS,测试通过

处理DateTime.Now不经过ToString()转换的格式(带有AM、PM)问题

标签:nal   tail   default   regedit   后台数据库   .net   targe   net   时间   

原文地址:https://www.cnblogs.com/iwin9999/p/9494467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!