2016-12-11 6 views
0

私はdatetimeoffsetの値が11/22/2016 05:20 AMでオフセットが-06:00であるとします。私は時間の値からのオフセットを減らした後、結果を11/21/2016 11:20 PMとしたい。試しましたdatatimeoffsetからdatetimeを計算する

date.UtcDateTime 

しかし、私には11/22/206 11:20 PMという結果が与えられます。 datetimeoffset値から優先結果を取得する方法は何ですか

+2

は '' '2016年11月22日午前5時20 AM'''がすでに低下していると思います。 UTC時間を取得するには、 '' '11/22/2016 05:20 AM -6:00'''に6hを追加する必要があり、' '' 11/22/206 11:20 PM''のメッセージが表示されます – tym32167

+0

中央時間はUTCから6時間遅れ、-06:00(UTC - 6時間と同様)で表されます。したがって、UTC時間を得るのに6時間を追加しなければなりません。 – juharr

+0

しかし私が必要とする答えは時間値 - オフセット値です。それは11/21/2016 11:20 PMでなければなりません。与えられた時間で6時間が差し引かれます – udaya726

答えて

1

次の例は、DateTimeOffsetが作成されると、年、月、日、時、分などがタイムゾーンで現地時間として解釈されることを示していますオフセット(udaya726の場合は-6時間)で指定します。デフォルト出力「11/22/2016 05:20:00 -06:00」は、「グリニッジから6時間遅れて、2016年11月22日、午前5時20分」と読み替える必要があります。

using System; 

public class StOv4 
{ 
    public static void Main() 
    { 
     // Time in question: 11/22/2016 05:20 AM with an offset of -06:00 
     TimeSpan questionOffset = new TimeSpan(-6, 0, 0); 
     DateTimeOffset questionTime = new DateTimeOffset(2016, 11, 22, 5, 20, 0, 0, 
      questionOffset); 
     Console.WriteLine("Time with {0} offset: {1}", questionOffset, questionTime); 
     // "u" format specifier indicates string is to represent UTC time. 
     Console.WriteLine("UTC time: {0}", questionTime.ToString("u")); 

    } 
} 

コンソール出力:

 
Time with -06:00:00 offset: 11/22/2016 05:20:00 -06:00 
UTC time: 2016-11-22 11:20:00Z 
関連する問題