【发布时间】:2019-06-25 07:33:16
【问题描述】:
我正在使用 Asp.Net Core 2.2 Razor Pages 应用程序。我想在应用程序级别设置应用程序文化和日期格式。因此,经过一番谷歌搜索后,我最终在 Startup.cs
的ConfigureServices 方法中添加了以下代码
public void ConfigureServices(IServiceCollection services)
{
// setting the application culture to en-US with MM/dd/yyyy short date pattern.
var culture = CultureInfo.CreateSpecificCulture("en-US");
var dateformat = new DateTimeFormatInfo { ShortDatePattern = "MM/dd/yyyy", LongDatePattern = "MM/dd/yyyy hh:mm:ss tt" };
culture.DateTimeFormat = dateformat;
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
但这似乎不起作用。我得到的日期格式错误。例子,
DateTime.Now.ToShortDateString() 返回 6/25/2019 而不是 06/25/2019。同样是DateTime.Now.ToLongDateString()的问题
如果我将格式更改为“dd/MM/yyyy”,它会返回 25/06/2019 的日期吗??
我在本地开发环境中运行它。我还期望我的应用在任何环境、任何机器、任何文化中都能以我上面设置的相同格式获取日期。
请帮助和指导我哪里错了。
提前致谢!!
【问题讨论】:
-
从文档Globalization and localization in ASP.NET Core 开始。您可以通过the localization middleware 设置请求区域设置。您可能只需要致电
app.UseRequestLocalization了解您想要的文化 -
使用
app.UseRequestLocalization时如何设置短日期和长日期格式??
标签: c# asp.net-core date-formatting razor-pages culture