将字符串格式转换为日期时间,单位为mm / dd / yyyy

时间:2012-04-06 11:46:17

标签: c# datetime

我必须将mm / dd / yyyy格式的字符串转换为datetime变量,但它应保持为mm / dd / yyyy格式。

string strDate = DateTime.Now.ToString("MM/dd/yyyy");

请帮忙。

6 个答案:

答案 0 :(得分:40)

您正在寻找DateTime.Parse()方法(MSDN Article

所以你可以这样做:

var dateTime = DateTime.Parse("01/01/2001");

这将为您提供DateTime类型的对象。

如果您需要指定要使用的日期格式,可以使用DateTime.ParseExactMSDN Article

你会在这种情况下使用哪种(你使用的是英式日期格式):

string[] formats= { "dd/MM/yyyy" }
var dateTime = DateTime.ParseExact("01/01/2001", formats, new CultureInfo("en-US"), DateTimeStyles.None);

答案 1 :(得分:27)

月份部分需要大写M

string strDate = DateTime.Now.ToString("MM/dd/yyyy");

小写m用于输出(和解析)一分钟(例如h:mm)。

e.g。完整日期时间字符串可能如下所示:

string strDate = DateTime.Now.ToString("MM/dd/yyyy h:mm");

注意大写/小写mM的区别。


此外,如果您始终处理相同的日期时间格式字符串,则可以通过将它们编写为C#扩展方法来简化它。

public static class DateTimeMyFormatExtensions
{
  public static string ToMyFormatString(this DateTime dt)
  {
    return dt.ToString("MM/dd/yyyy");
  }
}

public static class StringMyDateTimeFormatExtension
{
  public static DateTime ParseMyFormatDateTime(this string s)
  {
    var culture = System.Globalization.CultureInfo.CurrentCulture;
    return DateTime.ParseExact(s, "MM/dd/yyyy", culture);
  }
}

示例:在DateTime / string

之间进行翻译
DateTime now = DateTime.Now;

string strNow = now.ToMyFormatString();
DateTime nowAgain = strNow.ParseMyFormatDateTime();

请注意,有 NO 方式存储自定义DateTime格式信息以用作default,因为在.NET中大多数字符串格式取决于当前设置的文化,即

System.Globalization.CultureInfo.CurrentCulture.

您可以做的唯一简单方法是滚动自定义扩展方法。

另外,另一种简单的方法是为DateTime使用不同的“容器”或“包装”类,即定义了explicit operator的一些特殊类,它自动转换为DateTime / string。但那是危险的领域。

答案 2 :(得分:2)

我确实喜欢这个

var datetoEnter= DateTime.ParseExact(createdDate, "dd/mm/yyyy", CultureInfo.InvariantCulture);

答案 3 :(得分:2)

您也可以通过执行此操作来更改格式

string fecha = DateTime.Now.ToString(format:"dd-MM-yyyy");

//这会更改"/"

"-"

答案 4 :(得分:2)

<强>解决方案

DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture)

答案 5 :(得分:0)

以下适用于我。

string strToday = DateTime.Today.ToString("MM/dd/yyyy");