帮助在 asp.net vb 中获得 GB - 美国日期转换

Posted

技术标签:

【中文标题】帮助在 asp.net vb 中获得 GB - 美国日期转换【英文标题】:Help getting GB - US date conversions working in asp.net vb 【发布时间】:2010-10-18 12:55:03 【问题描述】:

我的网站在 web.config 中设置为 en-GB。我在页面上有一个日历扩展文本框控件,允许用户选择日期,GB 格式为字符串(DD/MM/YYYY)。在插入数据库之前,我需要将其转换为美国日期时间。

解决方案:(MM/dd/yyyy hh:mm:ss)

我讨厌星期一。像往常一样想太多。

【问题讨论】:

您要执行什么转换?无论您如何格式化 ToString 输出,DateTime 都表示相同的日期和时间。 我在 web.config 中设置为 GB 文化的网站上有一个日历。这会得到像 DD/MM/YYYY 这样的日期。 Db 服务器设置为 US,因此希望日期时间为 MM/DD/YYYY 00:00:00 我同意卢克的观点,即“我也尝试过”应该有效。 @bookingdate 参数的 DbType 是什么?它在哪一行上失败了——解析还是参数集? (你可以在 VB.NET 中使用DateTime.Parse() 代替吗?) 哦,我看到您已经在另一个(重复?)问题***.com/questions/3958134/… 上尝试过 DateTime.Parse() 我不确定我会拿出你拥有的所有代码示例。这使得理解答案和 cmets 变得非常困难,因为它们指的是问题中不再存在的东西。 【参考方案1】:

如果@bookingdate 已经是DateTime 参数,则不要理会它。数据库不关心日期的字符串表示形式 - 无论您在调用 ToString 时决定如何格式化它,基础日期/时间都是相同的。

(即,只需注释掉问题中显示的整个代码块,看看是否可行。)

关于您最近的编辑和 cmets,我怀疑您只需要执行以下操作:

Dim dt As DateTime = DateTime.ParseExact(InputBookingdatesingleday.Text,
                                         "dd/MM/yyyy",
                                         CultureInfo.GetCultureInfo("en-GB"))

command.Parameters.AddWithValue("@bookingdate", dt)

【讨论】:

我同意——他只想要command.Parameters("@bookingdate").Value = gbDT——但不幸的是,这并不能解释他的解析错误。 [其实他只是加了一句'我也试过'这个] 我尝试过简化并用代码编辑了问题 @Rup:他甚至不需要那个:gbDT 首先是从@bookingdate 解析的。整个代码块都是多余的。 D'oh,是的,我从表单中读取第一个解析并用它填充查询。那么 Phil 你从哪里获得表格中的数据以及它是什么类型的? @bookingdate 是如何设置的?通过来自控件的数据绑定?该控件是如何设置的? @Phil:InputBookingdatesingleday.Text 的确切值是什么导致了该错误?

以上是关于帮助在 asp.net vb 中获得 GB - 美国日期转换的主要内容,如果未能解决你的问题,请参考以下文章

PDF 生成后无法打开 (vb.net) (asp.net)

如何在asp.net(vb)的新标签中打开pdf文件?

在 ASP.Net 网站项目中混合 VB.Net 和 C# 代码?

在Visual Basic.NET(VB.NET)中开发的ASP.NET Core应用程序,可以吗? VS

如何使用 vb.net 2003 在 asp.net 1.1 中手动填充数据网格?

如何在asp.net c# web应用程序中使用asp.net vb页面