2011-01-12 16 views
3

私はアプリを開発しています。 C#では、現地時間をUTCに変換する必要があります。現地時間は、自分のアプリで誰が使用するのかを示す時間帯です。入ります。私は.NET Framework 3.0で使用する必要があるので、TimeZoneInfoオブジェクトを使用することはできません。.NET Framework 3.0の現地時間をUTCに変換

どのように私はそれを行うことができますidiaを持っていますか?

TimeZoneオブジェクトで使用する必要がありますか?

ありがとうございました

多分私はできませんか?

+4

参照 - http://stackoverflow.com/questions/2548235/convert-utc-datetime-to-another-time-zoneまたはhttp://stackoverflow.com/questions/3439468/utc-to-users-local -time - アルゴリズムを逆にする – ChrisF

+0

フレームワーク3.0にはないため、TimeZoneInfoオブジェクトで使用することはできません – RRR

+0

申し訳ありません。 – ChrisF

答えて

6

今問題が表示されます。代わりに次の方法を使用します。 TimeZone.ToUniversalTime

+0

私は知っていますが、ユーザーが入力するTimeZoneのUTCオフセットをアプリでどのように知ることができますか?夏時間のルールをどのように考慮に入れることができますか? – RRR

+0

これは自動的に行われます(あなたのアプリはウェブではなくローカルであると仮定します)。 MSDNの例を確認してください。 –

+0

申し訳ありませんが、私は理解していませんが、それは自動的に行われたCのオブジェクトですか? MSDNのサンプルはどこですか? – RRR

0

私は、データベース内の時間を保存するたびに、私は常に3.0以下

使用このファイルには、

myEntity.CreateDate = DateTime.UtcNow; 

今UTC時間に節約

http://pastebin.com/w20NRkuP

それ

はそうあなたがすべてタイムゾーンの一覧を表示し、それらの値を持つことができヘルパーが含まれています。それをあなたのデータベースに追加するか、オンザフライで使用してください。

ドロップダウンを入力して、ユーザーに自分のTimeZoneを選択させるよう依頼して、保存したUTC日付に分を追加してください。例えば

:その後、

<asp:DropDownList ID="myDropDown" runat="server" /> 

myDropDown.DataSource = Helper.ListAllTimeZones(); 
myDropDown.DataValueField = "UtcOffsetMinutes"; 
myDropDown.DataTextField = "DisplayName"; 

myDropDown.DataBind(); 

ユーザー設定を保存する:

User.OffSet = (int)myDropDown.SelectedValue; 

はそれが


を役に立てば幸い

には、例えば、sweetie.comは、この処理を行います。

alt text

だけで、ユーザーにタイムゾーンを要求してからちょうどタイムゾーンを加算/減算、UTC時間ですべてを保存します。

+0

しかし、私はFrameWork 3.0のTimeZoneInfoオブジェクトを持っていません – RRR

+0

ダム私:(3.0のTimeZonesのリストを取得する:http://staceyw1.wordpress.com/2006/08/31/convert-local-time-to -timezone/bigとstupipですが、これは唯一の方法です。一度取得してこの情報で独自のオブジェクトを作成してください。 – balexandre

+0

はクラスを追加して使いやすくなりました。 – balexandre

関連する問題