C# 如何用零格式化或填充字符串日期?
我有如下格式的日期值:C# 如何用零格式化或填充字符串日期?,c#,string,datetime,C#,String,Datetime,我有如下格式的日期值:1/1/2015。 这些是由我无法更改的Web服务生成的: 如何设置格式:1/1/2015到01/01/2015,前导为零 我试过这个: Console.WriteLine(String.Format("{0:[##/##/####]}", "1/1/2015")); 这是: Console.WriteLine(String.Format("{0:MM/dd/yyyy}", "1/1/2015")); 但是我得到了相同的格式化输出。您可以这样尝试: return you
1/1/2015
。
这些是由我无法更改的Web服务生成的:
如何设置格式:1/1/2015
到01/01/2015
,前导为零
我试过这个:
Console.WriteLine(String.Format("{0:[##/##/####]}", "1/1/2015"));
这是:
Console.WriteLine(String.Format("{0:MM/dd/yyyy}", "1/1/2015"));
但是我得到了相同的格式化输出。您可以这样尝试:
return yourDateTimeValue.ToString("MM/dd/yyyy");
string s = "1/1/2015";
DateTime dt =
DateTime.ParseExact(s, "MM/dd/yyyy", CultureInfo.InvariantCulture);
编辑:
由于您将日期存储为字符串,请尝试以下操作:
return yourDateTimeValue.ToString("MM/dd/yyyy");
string s = "1/1/2015";
DateTime dt =
DateTime.ParseExact(s, "MM/dd/yyyy", CultureInfo.InvariantCulture);
我有如下格式的日期值
在.NET中,a没有任何隐式格式。它只有日期和时间值。DateTime
的文本表示(也称为字符串表示)可以有一种格式
如果您有这样的字符串,请将其解析为Datetime
,并使用dd/MM/yyyy
格式获取其字符串表示形式
string s = "1/1/2015";
DateTime dt;
if(DateTime.TryParseExact(s, "d/M/yyyy", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture).Dump(); // 01/01/2015
}
将日期字符串转换为
DateTime
,然后将其转换为MM/dd/yyyy
或任何您想要的格式
DateTime.Parse("1/1/2015").ToString("MM/dd/yyyy");
“1/1/2015”
是一个字符串
,而不是日期时间
。谢谢大家!我假设不使用TryParseExact
就无法格式化值?TryParseExact
不会影响格式。传入的格式是正在分析的字符串的当前格式。一旦有了DateTime
对象,就可以使用ToString
@UnaverageGuyTryParseExact
的重载对其进行格式化。它使用特定的格式和区域性设置将字符串
解析为日期时间
。您也可以使用ParseExact
方法。您甚至可以使用一些字符串方法将字符串拆分为/
,并将第一项和第二项0
添加为前导项。但这会很难看(或者不是最好的方法),因为字符串是解析DateTime
的完美候选。dd
和MM
格式说明符使用前导零获取天数和月份数ToString
method get对具有特定区域性的DateTime
的格式化字符串表示形式。@UnaverageGuy-您可以按日期分割器分割字符串,检查每个部分的长度,如果小于两个,则在前面加一个零。但老实说,你为什么不想尽快使用合适的数据类型(DateTime
)呢?@Corak:好的,我只是在寻找替代方法,以便我能够理解并更好地决定如何处理这个问题:我在看Format.String()
因为我已经以字符串的形式获取了数据。
但是你的观点是正确的。小心点。如果不提供任何IFormatProvider
,您的MM/dd/yyyy
格式可能无法生成相同的输出。