문제

Win2003 서버에서 실행중인 Timezone이 (GMT -06 : 00) 중앙 시간으로 설정했습니다. 나는 vs.net 2005, f/x 2.x로 프로그래밍하고 있습니다. 다음 코드를 실행할 때는 예상 결과를 얻지 못하지만 PROD 서버에있을 때만 가능합니다. 다른 기계 나타납니다 올바르게 작동합니다.

_response.Timestamp = DateTime.Now;

.NET 웹 앱 에이 작업을 수행 할 수있는 어딘가에 숨겨져있는 설정이 있습니까? 내가 찾을 수있는 모든 구성을 살펴 보았지만 바로 아무것도 보지 못했습니다.


참고 : 이것은 모든 서버에서 발생합니다 ...


참고 : 내 페이지로 전달 된 날짜를 사용해 보았습니다.

[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 (Mountain Standard Time)에 있습니다 !! :(

도움이 되었습니까?

해결책

많은 연구를 마친 후 DateTime 변수를 DateTimeOffset 변수로 변경했습니다. 또한 Flash/Flex 코드를 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 시간을 절약 할 수 있습니다.

다른 팁

무엇인가요 _request?

내부적으로 HttpContext 개체, 반사판은이 코드를 보여줍니다.

public DateTime get_Timestamp()
{
    return this._utcTimestamp.ToLocalTime();
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top