将MM/dd/yyyy hh/mm/ss tt格式字符串转为同格式DateTime遇问题
问题解析与解决办法
首先得明确:DateTime类型本身不存储显示格式,它本质是代表时间点的数值,你看到的16/05/2019 10:30:15只是调用ToString()时默认用当前文化格式输出的结果,和解析时用的格式无关。
你的代码只完成了「把字符串解析成DateTime对象」这一步,要是想得到指定格式的字符串输出,得在解析后调用ToString()方法并传入目标格式:
// 解析字符串为DateTime对象 DateTime date = DateTime.ParseExact("05/16/2019 10/30/15 AM", "MM/dd/yyyy hh/mm/ss tt", CultureInfo.InvariantCulture); // 按指定格式生成字符串 string formattedDate = date.ToString("MM/dd/yyyy hh/mm/ss tt", CultureInfo.InvariantCulture); // 此时formattedDate的值就是你预期的"05/16/2019 10/30/15 AM"
另外要注意:格式字符串里的/是日期分隔符占位符,默认会根据当前文化替换成对应符号(比如中文环境默认是-),所以必须指定CultureInfo.InvariantCulture才能保证输出的是/。
内容的提问来源于stack exchange,提问作者Serban Andrei
相关产品推荐
相关产品推荐

