我必须将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)
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.但那是危险的领域.