将 C# 中的日期时间转换为 yyyy-MM-dd 格式,并将其存储到 MySql DateTime 字段

本文关键字:存储 字段 DateTime MySql yyyy-MM-dd 日期 时间 转换 格式 | 更新日期: 2023-09-27 18:34:41

我正在尝试DateTime格式转换为yyyy-MM-dd格式并将其存储到DateTime对象中。但它给了我系统DateTime格式,这是MM/dd/yyyy.
我使用以下代码进行转换。

string dateTime = DateTime.Now.ToString();
string createddate = Convert.ToDateTime(dateTime).ToString("yyyy-MM-dd h:mm tt");         
DateTime dt = DateTime.ParseExact(createddate, "yyyy-MM-dd h:mm tt",CultureInfo.InvariantCulture);

但上述行中没有转换为指定的格式。
任何人都可以帮助解决这个问题。

我从一个应用程序获取日期时间并将此对象传递给另一个应用程序,该应用程序将该日期存储到 MySql 的日期时间字段中,该字段格式为"yyyy-MM-dd"。
这就是我发布这个问题的原因。

项目 1 有课程,我正在获得日期。处理器类是应用程序的中间件,它处理 DateTime 格式以转换为特定格式。并传递给其他项目,该项目使用 DateTime 并将其存储在 MySql 字段中。

将 C# 中的日期时间转换为 yyyy-MM-dd 格式,并将其存储到 MySql DateTime 字段

使用 DateTime.Now.ToString("yyyy-MM-dd h:mm tt"); .看到这里。

我们可以使用下面它非常简单。

Date.ToString("yyyy-MM-dd");

你试过吗?

var isoDateTimeFormat = CultureInfo.InvariantCulture.DateTimeFormat;
// "2013-10-10T22:10:00"
 dateValue.ToString(isoDateTimeFormat.SortableDateTimePattern); 
// "2013-10-10 22:10:00Z"    
dateValue.ToString(isoDateTimeFormat.UniversalSortableDateTimePattern)

在 mySql 数据库中存储 c# 日期时间值时,还可以尝试使用参数,这可能会有所帮助。

尝试为 CurrentCulture 和 CurrentUICulture 设置自定义 CultureInfo。

Globalization.CultureInfo customCulture = new Globalization.CultureInfo("en-US", true);
customCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd h:mm tt";
System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
System.Threading.Thread.CurrentThread.CurrentUICulture = customCulture;
DateTime newDate = System.Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd h:mm tt"));
我知道

这是一个旧线程,但对于所有新手来说,有一个新的简化语法(Intellisense 为我突出显示了它,不确定这个功能有多新,但我的猜测是 .NET 5.0(

DateTime date = DateTime.Now;
string createdDate = $"{date:yyyy-MM-dd}";

也许在这个例子中看起来并不简化,但是当连接一条长消息时,它真的很方便。

GetDateTimeFormats 可以将 DateTime 解析为不同的格式。示例为"yyyy-MM-dd"格式。

SomeDate.Value.GetDateTimeFormats()[5]

获取日期时间格式

试试这个!

DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Ticks)

文化不变的方式,最佳实践:

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