我的系统日期采用mm/dd/yyyy
格式,我的代码将日期转换为dd/mm/yyyy
格式。现在我希望以yyyy/mm/dd
格式的日期更新数据库中的表。我正在尝试:
string d = Convert.ToDateTime(FromDate).ToString("yyyy/MM/dd");
但它返回:yyyy/dd/mm
。
答案 0 :(得分:1)
您应该使用原始格式转换为DateTime,然后将其转换为所需的格式。像这样:
string FromDate = "12/13/2016";
string originalFormat = "MM/dd/yyyy";
string expectedFormat = "yyyy/MM/dd";
string d = DateTime.ParseExact(FromDate, originalFormat, CultureInfo.CurrentCulture)
.ToString(expectedFormat);
Console.WriteLine(d);
如果您对输入的格式不确定,可以采用这种安全的逻辑:
string FromDate = "12/13/2016";
string originalFormat = "MM/dd/yyyy";
string expectedFormat = "yyyy/MM/dd";
DateTime convertedDate;
string expectedDate = null;
if (DateTime.TryParseExact(FromDate, originalFormat, CultureInfo.CurrentCulture,
DateTimeStyles.AssumeLocal, out convertedDate))
{
expectedDate = convertedDate.ToString(expectedFormat);
}
else
{
// handle format errors.
}
Console.WriteLine(expectedDate);
答案 1 :(得分:1)
使用DateTime.TryParseExact
您将获得它的效果。设FromDate
为MM/dd/yyyy
格式的日期,所需的格式字符串为"yyyy/MM/dd"
,请考虑代码:
string FromDateString ="07/18/2016";
string fromStringFormat= "MM/dd/yyyy";
DateTime FromDate;
if(DateTime.TryParseExact(FromDateString, fromStringFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out FromDate))
{
string requiredString= FromDate.ToString("yyyy/MM/dd");
// Continue coding
}
else
{
// Conversion failed
}