在服务器上发布时,日期时间更改为美国

时间:2015-10-07 11:32:00

标签: c# datetime azure

我使用这两种方法来填充选择的日期列表。当我在本地进行测试时,一切都很好但是当我将网站发布到天蓝色服务器(应该是欧洲的)时,显示的时间是美国格式。

public class DateItem
{
    public DateTime Value { get; set; }
    public string Text { get; set; }
}

public static DateTime FirstDateOfWeek(int weekno, int yearno)
    {
        CultureInfo uk = new CultureInfo("en-GB");

        DateTime jan1 = new DateTime(yearno, 1, 1);
        int daysOffset = DayOfWeek.Thursday - jan1.DayOfWeek;

        DateTime firstThursday = jan1.AddDays(daysOffset);
        var cal = CultureInfo.CurrentCulture.Calendar;
        int firstWeek = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);

        var weekNum = weekno;
        if (firstWeek <= 1)
        {
            weekNum -= 1;
        }
        var result = firstThursday.AddDays(weekNum * 7);
        return result.AddDays(-3);
    }

    public void GetWeekDates(int weekno, int yearno) //set date for specific week/year
    {            
        weekDates = new List<DateItem>();
        // Get the week dates based on the current week
        var day = FirstDateOfWeek(weekno, yearno);
        DateItem dateItem;
        for (int i = 0; i < 7; i++)
        {
            dateItem = new DateItem();
            dateItem.Text = day.AddDays(i).ToShortDateString();
            dateItem.Value = day.AddDays(i).Date;

            weekDates.Add(dateItem);
        }
        entryDate = day.Date;
    }

我希望能够将我的日期时间格式化为欧洲,这样无论我在哪里发布代码,时间格式都将被强制为欧洲。

当我在发布时检查html的核对清单时,我得到了。

<option value="10/5/2015 12:00:00 AM">10/5/2015</option>

当我在本地测试时,我得到了。

<option selected="selected" value="05/10/2015 00:00:00">05/10/2015</option>

来自同一个数据库。

1 个答案:

答案 0 :(得分:1)

通过永久改变应用文化,解决了这个问题。

<system.web>
    <globalization uiCulture="en-GB" culture="en-GB" />
</system.web>

这使我在整个应用程序中的所有日期时间都保持欧洲格式