C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 44 を表示中)
■23244 / )  DateTimeフォーマット
□投稿者/ asuka (49回)-(2008/08/11(Mon) 21:10:26)

分類:[C#] 

お世話になっております。asukaです。

IISのログ(System32/LogFiles/...)のログ時刻がGMT(世界標準時刻)なので、9時間足してJST(日本標準時刻)にしたと考えております。

コメント部分は#から始まるのですっとばせるとしまして、

その他のログ部は先頭から19文字が時刻であることまで分かっております。
⇒[yyyy-MM-dd HH:mm:ss]



ファイルから1行読込んだバッファの先頭から19文字をstring型で取得して、DateTime型の変数に渡しております。
DateTime dtGMT = Convert.ToDateTime( strReadBuf.Substring(0,19) );

次に9時間足した日時を取得しております。
DateTime dtJST = dtGMT.AddHours(9);



ここからが問題なのですが、元あるGMTで記載されたバッファの日時をstring.Replace()で9時間足した文字に置き換えたいと思っているのですが、

dtJSTの値が[yyyy/mm/dd (h)h:mm:ss]と、メッセージボックスで見てみると時刻部分が1桁で表示されることがあります。

[yyyy-mm-dd hh:mm:ss]形式で[/]を[-]、年以外を0埋めの2桁で表示したいのですが、

DateTime.ParseExactでは決められたフォーマット([/]を[-]とか無理でした)でしか対応していないみたいなのですが、

何か良い方法はありますでしょうか?




現状はC++でやっていたように、年、月、日、時、分、秒の変数を宣言して、

年以外の変数の先頭に0を付けてから、後ろから2桁取得して文字列結合しようと思ってますが、

良い手があるようでしたら教えて頂けれると幸いです。








返信 編集キー/


管理者用

- Child Tree -