我有一个类似字符串的日期:
09/25/2014 09:18:24
我需要这样(yyyy-mm-dd):
2014-09-25 09:18:24
此日期所涉及的对象是可以为空的日期。
试过这不起作用:
DateTime formattedDate;
bool result = DateTime.TryParseExact(modifiedDate, "yyyy-MM-dd",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out formattedDate);
任何线索?
提前致谢。
答案 0 :(得分:4)
将指定的日期和时间字符串表示形式转换为它 DateTime等效。 字符串表示的格式必须 完全匹配指定的格式。
在你的情况下,他们不是。请改用yyyy-MM-dd HH:mm:ss
格式。
string s = "2014-09-25 09:18:24";
DateTime dt;
if(DateTime.TryParseExact(s, "yyyy-MM-dd HH:mm:ss",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
Console.WriteLine(dt);
}
有点不清楚但如果你的字符串是09/25/2014 09:18:24
,那么你可以改用MM/dd/yyyy HH:mm:ss
格式。只是一个提示,"/"
custom format specifier具有特殊含义,因为将我替换为当前文化或提供的文化日期分隔符。这意味着,如果您的CurrentCulture
或提供的文化DateSeparator
不是/
,那么如果您的格式和字符串完全匹配,那么您的解析操作将失败甚至。
如果已经 DateTime
,并且您想对其进行格式化,则可以使用DateTime.ToString(string)
method之类的;
dt.ToString("yyyy-mm-dd", CultureInfo.InvariantCulture); // 2014-09-25
或
dt.ToString("yyyy-mm-dd HH:mm:ss", CultureInfo.InvariantCulture); // 2014-09-25 09:18:24
请注意,DateTime
没有任何隐式格式。它只包含日期和时间值。它们的字符串表示具有格式。
答案 1 :(得分:1)
在回答您的问题时,要根据您的喜好进行转换,请按以下方式进行:
string originalDate = "09/25/2014 09:18:24";
DateTime formattedDate;
if (DateTime.TryParseExact(originalDate, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out formattedDate))
{
string output = formattedDate.ToString("yyyy-mm-dd HH:mm:ss", CultureInfo.InvariantCulture);
}
然后输出将具有您想要的格式。
答案 2 :(得分:0)
DateTime dateOf = Convert.ToDateTime("09/25/2014 09:18:24");
string myFormat = "yyyy-mm-dd";
string myDate = dateOf.ToString(myFormat); // output 2014-18-25
<强> Datetime format 强>