gpt4 book ai didi

c# - 发布到 Web 服务器后将字符串转换为 DateTime 时出错

转载 作者:行者123 更新时间:2023-11-30 14:01:26 25 4
gpt4 key购买 nike

我正在使用下面的代码

    DateTime dtt=new DateTime();
dtt = Convert.ToDateTime(FromDate);


// DateTime dtt = DateTime.Parse(FromDate); //this also gives the same error

con = new MySqlConnection(conString);
con.Open();
for (int i = 1; i <= TotalDays; i++)
{
string updateHotelBooking = "Update tbl_hotelbookingdetail set `BookedRoom`=`BookedRoom`+"+1+", `AvailableRoom`=`TotalRoom`-`BookedRoom` where `HotelID`="+HotelID+" AND `CurrentDate`='"+dtt.ToString("dd-MM-yyyy")+"'";
MySqlCommand cmd7=new MySqlCommand(updateHotelBooking,con);
cmd7.ExecuteNonQuery();
dtt = dtt.AddDays(1);
}

这段代码在我用于 iPhone 应用程序的网络服务之一中。

此处 FromDate 是字符串,其格式为 15-11-2011,来自应用程序的字符串格式。我将它转换为 DateTime 因为在总天数循环中我需要在 dtt 中添加日期。

它在 dtt 值 15-11-2011 00:00:00 的本地主机上工作正常

但是当我发布它时,它给出了错误

String 未被识别为有效的 DateTime

最佳答案

这几乎可以肯定是因为您的服务器默认使用不同的文化 - 而您的代码只是使用当前的线程文化。

可以使用 DateTime.Parse 指定它- 或者使用 DateTime.ParseExact 明确指定模式或 DateTime.TryParseExact - 但我们需要更多地了解字符串的来源以建议最佳方法。它来自用户吗?如果是这样,您应该使用用户的文化来解析它。它是一种特定的格式(例如来自 XML 文档)吗?如果是,则使用该特定格式进行解析。

理想情况下,完全摆脱字符串部分 - 例如,如果您从数据库中获取它,您可以将其存储并获取 DateTime作为一个字符串?尽可能减少涉及的字符串转换次数是值得的。

编辑:要从 dd-MM-yyyy 的固定格式解析,我会使用:

DateTime value;
if (DateTime.TryParseExact(text, "dd-MM-yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal,
out value))
{
// Value will now be midnight UTC on the given date
}
else
{
// Parsing failed - invalid data
}

关于c# - 发布到 Web 服务器后将字符串转换为 DateTime 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8179124/

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