2


0

整数の日付をフォーマットされた日付文字列に変換する方法(つまり、 2012009から2009年2月1日まで)

何か案は? 思い付くことができません。

私はcsvファイルから読み込んでいる日付のリストを持っていますが、それらはすべて整数として保存されるか、整数の文字列として保存されます(つまり、 2009年1月1日= 1012009)

1012009を2009年1月1日に変える方法についてのアイデアはありますか?

ありがとうございます。

3 Answer


6


日付は文字列として保存されるため、http://msdn.microsoft.com/en-us/library/system.datetime.parseexact.aspx [ParseExact]を使用することができます。

DateTime date = DateTime.ParseExact("28012009", "dMMyyyy", null);

フォーマットが一致しない場合、 ParseExact`は例外をスローします。 他のオーバーロードがあり、必要に応じて複数の可能な形式を指定できます。 ここで、「provider」は「null」であり、現在のカルチャを使用することに注意してください。 +スタイルによっては、http://msdn.microsoft.com/en-us/library/system.datetime.tryparseexact.aspx [`TryParseExact]を使用できます。


2


int date = 1012009;

var month = date / 1000000;
var day = (date / 10000) % 100;
var year = date % 10000;

var formatted = new DateTime(year, month, day).ToString();

これは月日年を想定しています。数値が日月年の場合、それに対応するために月と日の変数を交換できると確信しています。

日付形式をカスタマイズする場合は、次の説明に従って行うことができます。

  • * http://msdn.microsoft.com/en-us/library/az4se3k1.aspx [標準日 および時刻形式文字列] *

  • * http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx [カスタム日付と 時間フォーマット文字列] *


0


10102009をdateIntとします。

string dateString = dateInt.ToString();
int l = dateString.Length;
dateString = dateString.Insert(l-3,"/");
dateString = dateString.Insert(l-6,"/");

dateStringに2009年1月1日になります。 ParseExact関数を試すこともできます。