URL中的日期时间格式



我在Blazor文件的EditForm中有输入标记(InputDate(。

<div class="form-group">
<label>Check In Date</label>
<InputDate @bind-Value="HomeModel.StartDate" class="form-control" min="@DateTime.Now.ToString("MM/dd/yyyy")" type="text"/>
</div>

然后将其提交给api服务器。

但问题是带有Url的DateTime格式,它显示

https://localhost:44320/api/hotelroom?checkInDate=04.%2012.%202022&checkOutDate=04.%2013.%202022

因此返回值为400错误。

当我大摇大摆地检查这个日期时间格式时,没有问题。

StartDate是Url中的checkInDate。

当我尝试调试时,checkInDate显示类似于'04。2022年11月。

我预计这是2022年11月4日。

我的电脑是为日本准备的。在不更改本地电脑的时间设置的情况下,有什么方法可以解决这个问题吗?

即使我使用"ToString("MM/dd/yyyy"("方法将参数转换为字符串,url也总是这样的

04.%2012.%202022

所以我使用了提供商

ToString("MM/dd/yyyy", new CultureInfo("en-US"))

然后一切都很好。字符串格式不能超过操作系统设置。

谢谢大家回答我的问题。

另一个可能的解决方案是在运行项目时更改项目的区域性,因此在启动类中应该添加:

app.UseRequestLocalization(options =>
{
var supportedCultures = new[] { "en-US" };
options.AddSupportedCultures(supportedCultures)
.AddSupportedUICultures(supportedCultures)
.SetDefaultCulture("en-US");
});

使用类似的提供商

ToString("MM/dd/yyyy", new CultureInfo("en-US"))

将强制您使用新的区域性信息设置每个ToString(这在很大程度上可能很乏味(

相关内容

  • 没有找到相关文章

最新更新