處理DateTime.Now不經過ToString()轉換的格式(帶有AM、PM)問題


問題是這樣的:

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,然后:

(1)在右邊的sShortDate右鍵,修改為數值數據為yyyy/M/d(原來是m/M/yyyy)

(2)原來sShortTime原來是h:mm tt,修改為H:mm

(3)修改sTimeFormat為H:mm:ss,原來可能是h:mm:ss tt。

    時間帶有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,測試通過


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM