0

最近、私が経験していた時間の問題についていくつか質問をしましたが、SO メンバーから良い助けを得ました。しかし、まだ解決できない問題があります。私のウェブサイトのホームページにこのスニペットがあります:

private string Datetime()
{
    DateTime nowutc = DateTime.UtcNow;
    var cet = TimeZoneInfo.FindSystemTimeZoneById("Central European Standard Time");
    var nowcet = TimeZoneInfo.ConvertTimeFromUtc(nowutc, cet);
    return nowcet.ToString("F");
}

そしてそれはうまくいきます。ラベルに表示されている正しい時刻を取得します。

ログインページのこのメソッドには基本的に同じコードがありますが、データベース (nowcet) に正しい時刻が返されません。

 public static void UserLogin(string iPaddress, string uname)
{  
    DateTime nowutc = DateTime.UtcNow;
    var cet = TimeZoneInfo.FindSystemTimeZoneById("Central European Standard Time");
    var nowcet = TimeZoneInfo.ConvertTimeFromUtc(nowutc, cet);
    const int MaxLength = 46;
    if (uname.Length > MaxLength)
        uname = uname.Substring(0, MaxLength);

    string getconnstring = ConfigurationManager.ConnectionStrings["xxx"].ConnectionString;
    SqlConnection conn = new SqlConnection(getconnstring);
    conn.Open();
    string ssql = "insert into Logins (IP, uname, dateTime) values ('" +
                  iPaddress + "','" +
                  uname + "','" +
               nowcet.ToString() + "')";//HERE IS WHERE I WRITE THE TIME TO THE DB
    SqlCommand cmd = new SqlCommand(ssql, conn);
    cmd.ExecuteNonQuery();
    conn.Close();
}

私が得る違いはちょうど3時間です。ラベルが午後 4 時 30 分を示している場合、データベースは午後 7 時 30 分に保存されます。この問題は本番サーバー (共有ホスティング) でのみ発生し、私のマシンではローカルでは発生しません。なぜこのようなことが起こっているのかわかりません。ヒントはありますか?

4

1 に答える 1