0

私は Win2003 サーバーで実行しており、TimeZone は (GMT -06:00) 中央時間に設定されています。VS.NET 2005、f/x 2.x でプログラミングしています。次のコードを実行すると、期待した結果が得られませんが、PROD サーバー上にある場合のみです。他のマシン正常に動作しているように見えます。

_response.Timestamp = DateTime.Now;

.NET Web アプリに対してこれを行うことができる設定がどこかに隠されていますか? 見つけたすべての構成を調べましたが、すぐには何も見つかりませんでした。


注: これはすべてのサーバーで発生しています...


注:ページに渡された日付を使用してみました:

[parameter 3] (Date): Thu Nov 05 22:23:16 MST 2009  // Web client time
LastPlayed (Date): Fri Nov 06 05:23:16 MST 2009  // Simple boxing of value

public class FlashObject
{
    #region Declarations
    public DateTime LastPlayed;
    public List<PlayList> Characters;
    public List<PlayList> Variations;
    #endregion
}

上記のオブジェクトは、次のように簡単に水和されます。

internal static void GetPlayer(FlashObject flashObject, DateTime clientPlayTime)

どちらも MST (山岳標準時) であることに注意してください!! :(

4

2 に答える 2

1

多くの調査の結果、DateTime変数をDateTimeOffset変数に変更しました。また、フラッシュ/フレックスコードを変更して、TZ名とオフセットを渡すようにしました。この情報を使用して、クライアントの時間を正確に追跡できます。

private void SetUserInfo(DateTimeOffset ClientTime, int Offset)
{
    if (Offset != 0 && ClientTime.DateTime == ClientTime.UtcDateTime)
    {
        ClientTime = ClientTime.AddHours(Offset);
        _actionDateTime = new DateTimeOffset(ClientTime.DateTime, new TimeSpan(Offset, 0, 0));
    }
    else
        _actionDateTime = ClientTime;

    _actionUtcDateTime = new DateTimeOffset(_actionDateTime.DateTime.ToUniversalTime(), new TimeSpan(0, 0, 0));
}

上記のコードを使用して、UTC時間だけでなくクライアント時間も節約できます。

于 2009-11-12T17:42:08.993 に答える
0

は何_requestですか?

内部的には、HttpContextオブジェクトのリフレクターは次のコードを示します。

public DateTime get_Timestamp()
{
    return this._utcTimestamp.ToLocalTime();
}
于 2009-11-06T16:33:10.600 に答える