字符串到MM/dd/yyyy
本文关键字:dd yyyy MM 字符串 | 更新日期: 2023-09-27 18:02:43
我有一个这样的字符串:
2013年4月3日或类似的情况2012年10月11日 这给我带来了一个错误: 这是怎么回事? 编辑: 复习完所有答案后,我想显示DateTime变量的Month和Day。 所以我不能做这样的事情: 有一个字符串不会解决我的问题,因为我使用这个变量只显示日期和月份。当我尝试将此"publicationDate">解析回DateTime时,它截断了月份和日期中的"0"。 希望我在这里表明了我的观点。 回答: DateTime publicationDate = DateTime.ParseExact(myDate, "MM/dd/yyyy", CultureInfo.InvariantCulture);
String was not recognized as a valid DateTime.
string publicationDate = DateTime.ParseExact(myDate, "M/d/yyyy", CultureInfo.InvariantCulture).ToString("MM/dd/yyyy");
string publicationDate = DateTime.ParseExact(myDate, "M/d/yyyy", CultureInfo.InvariantCulture).ToString("MM/dd");
您应该将前导零添加到月份和日期中。
这种方式:2013年3月4日
var myDateTime = DateTime.ParseExact(
"03/04/2013",
"MM/dd/yyyy",
System.Globalization.CultureInfo.InvariantCulture);
如果前导零是一个问题,那么执行:
var myDateTime = DateTime.ParseExact(
"3/4/2013",
"M/d/yyyy",
System.Globalization.CultureInfo.InvariantCulture);
最后,如果您想添加前导零:
string myFormattedDateTime = DateTime.ParseExact(
"3/4/2013",
"M/d/yyyy",
System.Globalization.CultureInfo.InvariantCulture)
.ToString("MM/dd/yyyy");
使用此模式:"M/d/yyyy"
解析它,"MM/dd/yyyy"
解析ToString
:
DateTime publicationDate = DateTime.ParseExact(dt, "M/d/yyyy", CultureInfo.InvariantCulture);
// if you want to display two digits for day and month:
Console.WriteLine(publicationDate.ToString("MM/dd/yyyy"));
正如你在这里看到的,它对两者都有效:http://ideone.com/M7luBD
简单的解决方案是:
string publicationDate = DateTime.ParseExact(myDate, "M/d/yyyy", CultureInfo.InvariantCulture).ToString("MM/dd");
谢谢大家的回答!
首先转换字符串ToDateTime
。确保你有前导零。
string date = "03/04/2013";
DateTime dt = Convert.ToDateTime(date);
[TestCase("3/4/2013", 3, 4, 2013)]
[TestCase("11/4/2013", 11, 4, 2013)]
public void DateTest(string date, int month, int day, int year)
{
var publicationDate = DateTime.ParseExact(date, "M/d/yyyy", CultureInfo.InvariantCulture);
Assert.AreEqual(day, publicationDate.Day);
Assert.AreEqual(month, publicationDate.Month);
Assert.AreEqual(year, publicationDate.Year);
}
两个测试用例都通过。
如果您的格式要求MM/dd/yyyy,那么您需要提供这样的字符串(2013年3月4日,而不是2013年4月3日(。所以要么
- 如果您提供的日期没有前导零,请使用M/d/yyyy
- 或者如果可以提供前导零,则使用MM/dd/yyyy