将字符串格式转换为以毫米/日/年为单位的日期时间

本文关键字:为单位 时间 日期 格式 字符串 转换 | 更新日期: 2023-09-27 18:30:21

>我必须将 mm/dd/yyyy 格式的字符串转换为日期时间变量,但它应该保持 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();

请注意,没有办法存储自定义DateTime格式信息以default在 .NET 中用作大多数字符串格式取决于当前设置的区域性,即

System.Globalization.CultureInfo.CurrentCulture.

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

此外,另一种简单的方法是为您的 DateTime 使用不同的"容器"或"包装器"类,即一些定义了 explicit operator 的特殊类,可以自动转换为 DateTime/字符串。但那是危险的领域。

解决方案

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");