2016-11-25 5 views
0

システム日時フォーマットを特定のフォーマットに変換する際に問題があります。System DateTimeを特定の形式に変換します。例:(yyyyMMdd hh:MM:ss)

たとえば:DateTime dt=new DateTime(); //私のシステムフォーマットに従って11/15/2016 10:23 AMを返します。

しかし、この形式に変換する必要があります。20161115(yyyyMMdd hh:MM:ss)です。 `DateTime.Now.ToString(" yyyyMMdd hh:MM:ss ")を使ってこれを実現できますか? 。

しかし、その返す文字列形式です。私は日時形式でしたいです。ここで

+2

文字列に変換しない場合、DateTimeにはフォーマットが適用されません。文字列に変換しないと、doubleまたはintに書式設定がありますか? [MSDN - カスタム日付と時刻のフォーマット文字列](https://msdn.microsoft.com/en-us/library/8kb3ddd4(v = vs.110).aspx) – MarkusEgle

+0

'DateTime'オブジェクトはプロパティに値を持ち、特定のフォーマットでデータを表現したいので、 'ToString()'を使用します。しかし、それはオブジェクトの内容を変更しません。それをdiff形式で表示しているだけです。 –

答えて

1

あなたが行く:

string str = DateTime.Now.ToString("yyyyMMdd hh:MM:ss"); 

DateTime dt = DateTime.ParseExact(str, "yyyyMMdd hh:MM:ss", CultureInfo.InvariantCulture); 
+0

これを使用して、文字列をDateTime形式に戻すことができます。ありがとう –

5

DateTimeオブジェクトは何のフォーマットを持っていないよう。それは内部数値valusとして情報を含み、あなたのIDEかコードによって文字列表現にフォーマットされるだけです。あなたはそのフォーマットを変更しません。

を出力する場合は、の出力先にフォーマットを設定し、その文字列を取得します。

2

DateTimeはオブジェクトです。つまり、値は以下に示すプロパティに保存されます。

DateTimeをデフォルトの形式とは異なる形式で表示する場合は、ToString(yourFormat)メソッドを使用して形式を設定します。 これは、あなたが予想しているものならば、データまたはプロパティの位置を変更しません。 (プロパティ自体の用語の位置は意味がありません

そのちょうど表現。データベースのデータをテーブルとして扱うのと同様に、UIではファンシーなHTMLとして表示します。

内部でオブジェクトは各プロパティにデータを保存し、DateTime.Now.ToString()の既定の表現を提供します。デフォルトのDateTime形式を使用したくない場合にのみ、自由にフォーマットすることができます。

あなたのアイデアは、すべてのコード・ロジックのために、このstring日時を使用していたのであれば、あなたはちょうどそれを文字列にフォーマットを与えることでDateTimeオブジェクトにそれを解析します

DateTime date = DateTime.ParseExact(strDate, "yyyyMMdd hh:MM:ss", CultureInfo.InvariantCulture) 

などにある今、あなたの文字列データがありますなどのオブジェクトに解析し、あなたが

date.Dateとして値をフェッチすることができ、date.Millisecond

enter image description here

0

DateTimeは、さまざまなプロパティとメソッドが関連付けられたクラスです。 DatTimeオブジェクトを実際には別の "書式"で返すことはできません。これは単なるある時点の表現です。ただし、DateTimeオブジェクトは、特定の方法で変換されたものとして表現できます。それでは、あなたがやっていることは正しいです:あなたは、このようなログファイルまたはUIのとして、readabel形式で日時を表示する必要があるとき

DateTime.Now.ToString("yyyyMMdd hh:MM:ss") 

はこれを行います。パラメータとしてDateTimeを渡す必要がある場合は、オブジェクトの文字列表現だけでなく、オブジェクト全体を渡します。

0

DateTime.ParseExact(dateString、 "yyyyMMdd hh:MM:ss"、null);

関連する問題