レガシーデータベースから日付と時刻を使用する必要があります。それらは文字列として表されます。日付はdd/MM/yyです。時はHH:mmです。英国時間(BSTとGMTの両方)を文字列としてUTC(C#)に変換する
データベースからプルするとすぐにこれらをUTCに変換したいと思います。私は米国のシステムで作業しているので、共通の時間が必要です。
私が直面している問題は、それらをUTCのDateTime値に変換する方法です。私は解析などを行うことができます。私が持っている本当の問題は、タイムゾーンに関係しています。日付が英国夏時間の期間中である場合
DateTime ukTime = // Parse the strings in a DateTime value.
TimeZoneInfo timeZoneInformation = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
DateTimeOffset utcTime = new DateTimeOffset(ukTime, timeZoneInformation.BaseUtcOffset);
しかし、これは間違った値を示します:
は、私は、次のアプローチを使用しようとしています。私はこれらの日付に "GMT夏時間"を使用できますが、それはスイッチオーバーの時期を知る必要があります。あまり面倒な方法でなければならないと確信しています。
私はイギリスの時間設定のマシンを使用していないため、現地時間に頼ることはできません。私は記事を洗い上げてきましたが、直接これに対処何かを見つけることができませんでした
// Works for both GMT (UTC+0) and BST (UTC+1) regardless of the regional settings of the system it runs on.
DateTime ParseUkTimeAsUtcTime(string date, string time)
{
...
}
:
は基本的に、私のような何かを必要としています。確かにこれはEST、EDTなどの問題でもありますか?
これは一般的なTimeInTimeZone-> TimeInUTCメソッドとして必要です。 –