日期时间在本地工作,但不在服务器上

本文关键字:服务器 工作 时间 日期 | 更新日期: 2023-09-27 18:15:17

我有一个表单插入一个日期…

本地工作,当我提交表单时,它工作得很好,并将日期保存到服务器。

但是当我尝试从服务器执行此操作时,我得到一个错误:

字符串未被识别为有效的DateTime.System.Collections.ListDictionaryInternal

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
public partial class test : System.Web.UI.Page
{       
    protected void dog_add_submit_Click(object sender, EventArgs e)
    {
        /*Create and Populate Dog*/
        Dog d = new Dog();
        try
        {
            d.DogName = dog_add_name.Text;
            d.ImageUrl = SaveImages();
            d.Colour = dog_add_colour.Text;
            d.PlaceFrom = dog_add_placeFrom.Text;
            d.Breed = dog_add_breed.Text;
            d.ArrivalDate = DateTime.Parse(txtDate.Text);
            //if fields were populated properly in c# proceed to insert into database
            try
            {
                int numEffected = d.doginsert();
                // Response.Write("num of effected rows are " + numEffected.ToString());
                Response.Redirect("MedicalHistoryAdd.aspx?dogid=" + d.SqldogID);
            }
            catch (Exception ex)
            {
                Response.Write("There was an error when trying to insert the dog into     the database" + ex.Message);
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message + ex.Data);
        }
    }
}

日期时间在本地工作,但不在服务器上

。NET会将您的区域设置设置为它所运行的机器上的默认值。这意味着它还将解析该地区的DateTime和ToString() DateTime。所以我猜您的本地语言/时区偏好与服务器不同?

可以在web中设置。配置期望并输出特定的内容:

<system.web>
   <globalization culture="da-DK" uiCulture="da-DK" />
</system.web>

我的是丹麦语,也许你想要en-GB或en-US ?

第二个选择是使用不变格式提供程序在桶里打鱼。

DateTime.Parse(txtDate.Text, DateTimeFormatInfo.InvariantInfo);

希望有帮助!

try this

DateTime curr = Convert.ToDateTime(txtDate.Text);
d.ArrivalDate = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(curr, "India Standard Time");

d.ArrivalDate = Convert.ToDateTime(txtDate.Text);