【发布时间】:2021-10-28 13:53:57
【问题描述】:
我很困惑将 23/09/21 或 09/23/21 转换为有效的日期时间
23/09/21 指开发环境, 09/23/21 指客户部署环境
string _tmpCreatedDate = ((SAPbouiCOM.EditText)b1MatrixUser.Columns.Item("Col_8").Cells.Item(i + 1).Specific).Value;
因此变成string _tmpCreatedDate = "23/09/21";
DateTime _swapCreatedDate = Convert.ToDateTime(_tmpCreatedDate);
以上代码将输出字符串未被识别为有效的日期时间。
试过_tmpCreatedDate = Convert.ChangeType(_tmpCreatedDate, typeof(DateTime)).ToString();
同样的转换问题,因为输入字符串是动态的 dd/MM/yy 或 月/日/年 如何正确处理?
【问题讨论】:
-
你不能只改变这样的类型,你应该看看 [
DateTime.Parse] 或其他变体(ParseExact、TryParse等) -
您希望“04/05/21”的结果是什么?
-
@JonSkeet 那个问题 dd/MM/yy 指的是开发环境,MM/dd/yy 指的是客户部署环境,这种情况如何解决?
-
嗯,你知道你应该使用哪种文化吗?如果是这样,请使用
DateTime.ParseExact指定适当的文化。但如果你不“知道”你所处的环境,那就更成问题了。 (我认为如果可能的话,更好的解决方案是改变数据的存储方式,但我意识到在这个阶段这可能是不可行的。)