2012-02-02 27 views
3

私は次のように格好良いの文字列を持っている:ミリ秒の日付時刻をdoubleまたはintに変換しますか?

TimeString = "2011.01.02 22:06:52.091" 

今、私はそれが倍に変換し、二重の数として保存したいです。私はC#でそれをやっています、どうすればいいですか?

本当に答えをオンラインで見つけることができません。

編集:

時間は、金融通貨の引用のためのタイムスタンプのようなものです:

時間入札は

2011年1月2日22を尋ねる:06:52.091 1.5000 1.5001

ことがあります為替相場のタイムスタンプ。私はこのように好む:xxxxxxxxxxxxxxxx.ooo、xxxxxxxxxxxxxxxは、 "2011.01.02 22:06:52"からの秒数を示すint部分であり、.oooは "091"というミリ秒です。どう思いますか?

+2

あなたが結果として得ることを期待どのような値にしますか?ティック、ミリ秒数など?別の方法で、結果をどのように使用する予定ですか? –

+0

[DateTimeの値をdoubleに変換するにはどうすればいいですか?](http://stackoverflow.com/questions/1010697/how-can-i-convert-a-datetime-value-to-a-double) – adatapost

+0

@ M.Babcock、実際には、Forexの見積もり時間のタイムスタンプです。私はこのように好む:xxxxxxxxxxxxxxxx.ooo、xxxxxxxxxxxxxxxは、 "2011.01.02 22:06:52"からの秒数を示すint部分であり、.oooは "091"のmilisecondsです。どう思いますか? –

答えて

4
var span = DateTime.ParseExact(TimeString, 
          "yyyy.MM.dd HH:mm:ss.fff", 
          CultureInfo.InvariantCulture) - 
     new DateTime(2011, 01, 02, 22, 06, 52, 0); 
double d = span.TotalMilliseconds/1000.0; 

は、オプションのカップルがあり、二重

+0

@ Keith.Nicholas、Stringは有効なDateTimeとして認識されませんでした。これはあなたのコードを実行することによって苦情です。 –

+0

申し訳ありませんが、HHではなく、私のコードを変更し、HHは24時間です。 –

+0

実際には、それを何かより良いものに変更しました:) –

3

に変換しますが、それは、使用シナリオを知らなくても「最高」であるかを知ることは不可能です。

これをlong(Int64)として保存できる場合は、DateTime.Ticksを使用できます。

もう1つの方法は、DateTime.ToOADateを使用して、DateTimeをOLEオートメーションの日付に変換することです。

変換するには、constructor that takes TicksまたはDateTime.FromOADateを使用できます。

+0

@ Reed.Copsey、さらに説明するコードを書くことはありませんか? –

0

私は、これはあなたがやろうとしているものであると信じて:

static void Main(string[] args) 
{ 
    String timeString = "2011.01.02 22:06:52.091"; 

    string format = "yyyy.MM.dd HH:mm:ss.fff"; 

    double date = DateTime.ParseExact(timeString, format, CultureInfo.InvariantCulture).ToOADate(); 

} 
関連する問題