我只需要 yyyy-MM-dd 格式的日期,但我的日期格式错误(20/03/2018 0:00:00)。
var d = Convert.ToDateTime("2018-03-20T00:00:00.000",CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
var finaldate = DateTime.TryParseExact(d, "yyyy-MM-dd", null);
输出我正在--20 / 03/2018 0:00:00 预期 - 2018-03-20
答案 0 :(得分:4)
当他们写下“DateTime没有格式”时,我会尝试解释其他人的意思。
DateTime
是一种C#类型,具有年,月,日等属性。
如果您要打印DateTime
,首先必须将其转换为string
。在此转换过程中,您可以定义输出格式。
此外,如果您将string
解析为DateTime
,则可以定义预期的输入格式。
这是“Standard Date and Time Format Strings”/“Custom Date and Time Format Strings”的用途。
一个例子:
string d = Convert.ToDateTime("2018-03-20T00:00:00.000",CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
DateTime finaldate = DateTime.TryParseExact(d, "yyyy-MM-dd", null); // not a string!
int year = finadate.Year; // year == 2018 (a number!)
int month = finaldate.Month; // month == 3 (a number again!)
string isoFormat = finaldate.ToString("yyyy-MM-dd"); // isoFormat == "2018-03-20"
string usFormat = finaldate.ToString("MM/dd/yyyy"); // usFormat == "03/20/2018"
// and so on...
请注意,如果您只是在没有指定任何格式的情况下调用ToString()
,结果将取决于当前线程的文化(可能从您显示的输出判断为“en-Us”)。请参阅DateTime.ToString Method。
答案 1 :(得分:0)
DateTime
始终返回带有时间部分的DateTime
对象。
要获得预期的输出,您必须返回字符串,例如。 DateTime.Now.ToString("dd-MM-yyyy")