我想将任何DateTime格式转换为US DateTime格式,即
MM-dd-yyyy HH:mm:ss
我的服务器日期可以像尾巴中添加AM
/ PM
一样。我必须处理大多数可能的情况。
CodeValidTill = DateTime.ParseExact(dateObject.ToString(), "MM-dd-yyyy HH:mm:ss", culture);
我也试过以下方法来涵盖大多数情况:
public static DateTime ConvertToUSDateFormat(string dateString)
{
string[] formats = {"M/d/yyyy", "MMM dd yyyy", "MM-dd-yyyy HH:mm:ss", "M/d/yyyy hh:mm:ss tt", "MM/dd/yyyy hh:mm:ss tt"};
return DateTime.ParseExact(dateString, formats, CultureInfo.InvariantCulture, DateTimeStyles.None);
}
有没有办法可以编写一个通用方法来处理这种情况?
答案 0 :(得分:0)
我有许多处理DateTimes的硬性规则:
如果您遵循所有这些规则,您可以合理地使用DateTimes而不会生气。
如果你不能遵循这些规则,你应该简单地称之为不可能,这样你就可以通过对错误代码进行适当的修改来强制执行规则。
答案 1 :(得分:-1)
同意jdweng。将日期存储为DateTime是一个非常好的主意。此对象与格式无关,可以考虑特殊的文化格式。
实施例
DateTime thisDate = new DateTime(2018, 1, 29);
Console.WriteLine(thisDate.ToString("d"));
这应该显示为1/29/2018
More info on DateTime formatting with the "ToString" overloads