帮助在 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.Net 和 C# 代码?
在Visual Basic.NET(VB.NET)中开发的ASP.NET Core应用程序,可以吗? VS