最近在將項目從.net 遷移到.net core環境中,遷移完成後,發佈於Windows平臺上進行測試,所有功能均能正常運行。 為了項目能夠在正式環境也能正常運行,提前進行Linux環境部署(Centos7)預發佈,就在預發佈後進行代碼的基本測試後, 發現日誌中出現了string轉datetime錯 ...
最近在將項目從.net 遷移到.net core環境中,遷移完成後,發佈於Windows平臺上進行測試,所有功能均能正常運行。
為了項目能夠在正式環境也能正常運行,提前進行Linux環境部署(Centos7)預發佈,就在預發佈後進行代碼的基本測試後,
發現日誌中出現了string轉datetime錯誤,按道理說相同的代碼,相同的測試用例, 不應該出現不同的結果!!!???~
~想到Linux和Windows還是有些差異性,會不會是運行環境的問題,經過調試發現,在linux中將datetime直接tostring或者與stirng進行+操作,
產生的結果與Windows中不一致,在Windows中預設格式是2017/6/17 21:55:12,而在linux中則包含了 上午/下午(PM/AM) 關鍵字,
然而,通過DateTime.Parse()函數再將結果轉換為日期格式則報錯!!!
這!應該就是.net core sdk(linux)中的bug !
因此建議寫代碼時一定要規範,日期轉字元串時一定要指明格式:dt.ToString("yyyy-MM-dd HH:mm:ss");
本文發表於2017-06-17,歡迎各位大神參與討論