gpt4 book ai didi

c# - 日期采用 MM/dd/yyyy 格式,这在服务器上是错误的

转载 作者:太空宇宙 更新时间:2023-11-03 23:22:27 24 4
gpt4 key购买 nike

我的 aspx 页面中有一个文本框和日历控件,它在本地机器上以 dd-mm-yyyy 格式工作正常。

但是当我在服务器上使用相同的代码时,它会自动采用 mm-dd-yyyy 格式。我不知道为什么会这样

下面是我的代码:-

<asp:TextBox ID="txtdatefilter" runat="server" Width="70" OnTextChanged="txtdatefilter_TextChanged" ></asp:TextBox>
<cc3:Calendar ID="CaldatefilterDt" runat="server" CultureName="en-GB" DatePickerImagePath="../Images/icon2.gif"
DatePickerMode="true" TextBoxId="txtdatefilter" Align="Left" OnDateChanged="CaldatefilterDt_DateChanged">
</cc3:Calendar>

CS代码

protected void txtdatefilter_TextChanged(object sender, EventArgs e)
{
CaldatefilterDt.SelectedDate = Convert.ToDateTime(txtdatefilter.Text);
}

protected void CaldatefilterDt_DateChanged(Object sender, EventArgs e)
{
txtdatefilter.Text = Convert.ToDateTime(CaldatefilterDt.SelectedDate, CultureInfo.GetCultureInfo("en-GB")).ToString("dd-MM-yyyy");
}

最佳答案

您可以使用DateTime.TryParseExact:

protected void txtdatefilter_TextChanged(object sender, EventArgs e)
{
DateTime dateFilter;
if(DateTime.TryParseExact(txtdatefilter.Text, "dd-MM-yyyy", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out dateFilter))
CaldatefilterDt.SelectedDate = dateFilter;
}

另一种选择是使用 DateTime.Parse(更好的 TryParse 用户输入)并提供您的 DateTimeFormatInfo/CultureInfo,例如 "en-GB"(英国)或 "de-DE"(德国):

bool valid = DateTime.TryParse("26-01-2016", new CultureInfo("en-GB"), DateTimeStyles.None, out dateFilter);

第一个选项总是有效,因为它通过使用 DateTimeFormatInfo.InvariantInfoCultureInfo.InvariantCulture 规避了本地化问题。第二个选项确保它适用于提供的格式信息/文化。

关于c# - 日期采用 MM/dd/yyyy 格式,这在服务器上是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34945869/

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