【发布时间】:2021-11-14 08:50:10
【问题描述】:
我有 2 个使用 type=date 参数的文本框,显示日期如 dd/MM/yyyy
<asp:TextBox Type="date" runat="server" ID="txtScadenza" name="txtScadenza" placeholder="Scadenza" required="required" AutoPostBack="true" class="form-control input-md"></asp:TextBox>
<asp:TextBox Type="date" runat="server" ID="txtScadenzaDip" name="txtScadenzaDip" placeholder="Scadenza" AutoPostBack="false" class="form-control input-md" ></asp:TextBox>
这些文本框会收到带有此代码的日期:
txtScadenza.Text = Cliente.Scadenza.ToString("yyyy-MM-dd")
txtScadenzaDip.Text = Utente.dataScadenza.ToString("yyyy-MM-dd")
Scadenza 和 DataScadenza 这两个字段都是 SQL 数据库上的 DateTime 字段。唯一的区别是 DataScadenza 是可以为空的,而 Scadenza 不是。 我只在 txtScadenzaDip 上收到标题中的错误,而是 txtScadenza 以正确的格式显示日期......这让我发疯了。收到错误时,我知道 DataScadenza 字段具有以下值:2021-09-17 00:00:00.000 请问哪里出了问题?
【问题讨论】:
-
您的问题中是否存在复制粘贴错误?这两个文本框具有相同的 ID 和名称。
-
我没有在 asp:TextBox 中获得 Type 属性。您在寻找 TextMode 吗?
-
您说 UI 以“dd/MM/yyyy”格式显示日期,但代码使用
.ToString("yyyy-MM-dd")。那是怎么回事? -
@Mary 确实,我更正了:)
-
@jmcilhinney 老实说,我不记得了,我正在遵循我的综合实践,我只是明白这些控件需要英文格式的日期,即使它们以本地格式显示。即使我必须将这些日期保存到数据库中,我也必须使用像这样的 parseExact 函数 Dim scadenza As DateTime = DateTime.ParseExact(txtScadenzaDip.Text, "yyyy-MM-dd", CultureInfo.CreateSpecificCulture("en-US") ).日期
标签: asp.net vb.net datetime date-formatting