gpt4 book ai didi

C#日期时间格式转换

转载 作者:太空宇宙 更新时间:2023-11-03 18:11:48 26 4
gpt4 key购买 nike

我有日期时间的转换问题。我有一个日期字符串作为 MM/dd/yyyy。现在我需要将其转换为 yyyy-MM-dd

但是我遇到了一些错误。请帮忙

 public static DateTime ToDBDateTime(string _dateTime)
{
string sysFormat = "MM/dd/yyyy hh:mm:ss tt";

string _convertedDate = string.Empty;

if (_dateTime != null || _dateTime != string.Empty)
{
_convertedDate = DateTime.ParseExact(_dateTime, sysFormat, System.Globalization.CultureInfo.InvariantCulture).ToString(_toDBDateFormat);
//_convertedDate = Convert.ToDateTime(_dateTime).ToString(_toDBDateFormat);
/// Debug.Print(sysFormat);
}

return Convert.ToDateTime(_convertedDate);
}

我想知道是否有任何方法可以以各种格式传递 datetime 并且它会返回预期的格式。

例如:如果我将日期作为 dd/MM/yyyyMM/dd/yyyy 传递,上述函数将返回格式为 yyyy 的日期-MM-dd.

请提供一些解决datetime问题的建议。

最佳答案

I have a date string as MM/dd/yyyy

对...但您正试图像这样解析它:

string sysFormat = "MM/dd/yyyy hh:mm:ss tt";
...
_convertedDate = DateTime.ParseExact(_dateTime, sysFormat,
CultureInfo.InvariantCulture)

您需要提供与您的输入相匹配的格式字符串 - 那么为什么要包括时间部分?您可能只想:

string sysFormat = "MM/dd/yyyy";

然而,问题还不止于此。您然后DateTime 返回 转换为如下字符串:

.ToString(_toDBDateFormat)

... 并再次解析它:

return Convert.ToDateTime(_convertedDate);

你到底为什么要这么做?您应该尽可能避免字符串转换。撇开其他不说,_toDBDateFormat(一个引起我怀疑的变量名)和 Convert.ToDateTime(始终使用当前区域性进行解析)会兼容吗?

你应该:

  • 弄清楚你想如何处理空字符串或 null,然后返回一个合适的 DateTime
  • 否则,只需使用正确的格式进行解析。

你的这部分问题也与我有关:

E.g.: if I pass date as dd/MM/yyyy or MM/dd/yyyy, the above function would return the date in format as yyyy-MM-dd.

没有“日期格式为 yyyy-MM-dd”这样的东西。 DateTime 只是一个日期和时间值。它没有固有格式。 格式化它时,您可以指定如何格式化它。但是,如果您正在使用数据库查询的值,则您不应该再次将其转换为字符串无论如何 - 您应该使用参数化 SQL,并且只提供它as 日期时间

关于C#日期时间格式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13507021/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com