我必须将 mm/dd/yyyy 格式的字符串转换为 datetime 变量,但它应该保留为 mm/dd/yyyy 格式。
string strDate = DateTime.Now.ToString("MM/dd/yyyy");
请帮忙。
您正在寻找DateTime.Parse()
方法(MSDN 文章)
所以你可以这样做:
var dateTime = DateTime.Parse("01/01/2001");
这将为您提供一个DateTime
类型化的对象。
如果您需要指定要使用的日期格式,您可以使用DateTime.ParseExact
(MSDN 文章)
您将在这种情况下使用它(您使用的是英式日期格式):
string[] formats= { "dd/MM/yyyy" }
var dateTime = DateTime.ParseExact("01/01/2001", formats, new CultureInfo("en-US"), DateTimeStyles.None);
月份部分需要大写M
。
string strDate = DateTime.Now.ToString("MM/dd/yyyy");
小写m
用于输出(和解析)一分钟(例如h:mm
)。
例如,完整的日期时间字符串可能如下所示:
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 now = DateTime.Now;
string strNow = now.ToMyFormatString();
DateTime nowAgain = strNow.ParseMyFormatDateTime();
请注意,无法像在.NET中一样存储自定义DateTime
格式信息,default
大多数字符串格式取决于当前设置的文化,即
System.Globalization.CultureInfo.CurrentCulture.
您可以做的唯一简单方法是滚动自定义扩展方法。
此外,另一种简单的方法是为您的 DateTime 使用不同的“容器”或“包装器”类,即一些explicit operator
定义了自动转换为和从 DateTime/string 转换的特殊类。但那是危险的领域。
解决方案
DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture)
我确实喜欢这个
var datetoEnter= DateTime.ParseExact(createdDate, "dd/mm/yyyy", CultureInfo.InvariantCulture);
您也可以通过这样做来更改格式
string fecha = DateTime.Now.ToString(format:"dd-MM-yyyy");
// 这改变"/"
了"-"
以下对我有用。
string strToday = DateTime.Today.ToString("MM/dd/yyyy");