私は、復元された日付時刻文字列の値が元のものと異なる理由を理解するのに苦労してきました。私は普遍的なdatetime(書式 "u"ので、最後に 'z'を持っている)に文字列を書いていますが、それが復元されると、1時間ごとに異なります。私はこのようなことが起こらないように "u"を使っています。誰に違いがあるのか教えてもらえますか?DateTime.Parseは1時間オフです。どうして?
私は5つの異なるタイムゾーンでコードを使用するので、良い文字列表現が必要です。
プログラム:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfoByIetfLanguageTag("es-CR");
DateTime min = DateTime.MinValue;
Console.Write("Min value date: ");
Console.WriteLine(min);
Console.Write("String: ");
string str = min.ToString("u");
Console.WriteLine(str);
DateTime dt = DateTime.Parse(str);
Console.Write("Restored Date: ");
Console.WriteLine(dt);
Console.ReadLine();
}
}
}
出力は次のとおりです。
MIN値の日付:01/01/0001午前12:00:00
文字列:0001-01-01 00:00:00Z
復元日時:01/01/01 01:00:00 am
編集:コスタリカ文化を体験するためのオプション。
文字列を解析してdatetimeに戻していますか? –