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

Avi*_*mar 35 c# datetime

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

string strDate = DateTime.Now.ToString("MM/dd/yyyy");
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Dar*_*bio 44

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

所以你可以这样做:

var dateTime = DateTime.Parse("01/01/2001");
Run Code Online (Sandbox Code Playgroud)

这将为您提供一个DateTime打字对象.

如果您需要指定要使用的日期格式,可以使用DateTime.ParseExact(MSDN文章)

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

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

  • 当您只需要考虑一种格式字符串时,您不需要一组“格式”;`DateTime.ParseExact` 还有其他重载。 (2认同)

cha*_*rit 32

M月份部分需要大写.

string strDate = DateTime.Now.ToString("MM/dd/yyyy");
Run Code Online (Sandbox Code Playgroud)

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

例如,完整日期时间字符串可能如下所示:

string strDate = DateTime.Now.ToString("MM/dd/yyyy h:mm");
Run Code Online (Sandbox Code Playgroud)

注意大写/小写的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);
  }
}
Run Code Online (Sandbox Code Playgroud)

示例:在DateTime/string之间进行转换

DateTime now = DateTime.Now;

string strNow = now.ToMyFormatString();
DateTime nowAgain = strNow.ParseMyFormatDateTime();
Run Code Online (Sandbox Code Playgroud)

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

System.Globalization.CultureInfo.CurrentCulture.
Run Code Online (Sandbox Code Playgroud)

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

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