1

たぶんそれはn00bの質問ですが、私は.net / C#MSDNライブラリとこのサイトを調べましたが、まだ明確な答えは得られていません... ForEx:(これは正確には問題ではありません。文字列を作成するのではなく、DBから読み取ります。しかし、私が何を扱っているかを説明するのに役立ちます...)

string dob = "01/02/1990";
dob.ToString("MM/dd/YY"); //however, I can't do this. compiler gives me an error...

おそらくそれはすでに文字列だからですか?それでは、文字列がすでに文字列である場合、指定子を使用して文字列を希望の形式にするにはどうすればよいですか?私はそれを他のもの(Exの場合はDateTime)に変換し、ToString()を使用して文字列に戻すことができることを知っています...しかしこれは逆効果のようです...少なくとも私には

また、PDFのフィールドに印刷するために、それらをIdictionaryに保存しながら、特定の形式で表示しようとしている他のいくつかの「種類」の文字列変数があります。例:

d["amount"] = prod.sales.StringAmount; //(here StringSmount holds say 50000 (gotten from a DB), which I want to display as "50,000")

ただし、prod.sales.StringAmount.ToString( "N"、CultureInfo.CurrentUICulture);も実行できません。すでに文字列です!これを行う簡単な方法はありますか

または、文字列バッファまたはStringBuilderクラスをいじる必要がありますか?ありがとう!

4

5 に答える 5

3

あなたはこのようなことをすることができます:

DateTime dob = DateTime.Parse("01/02/1990"); 

その後

dob.ToString("MM/dd/YY");

動作します。

DateTime.Parse()受け入れることができる日時形式にはさまざまなオプションがあり、文字列が有効な日付でない場合に例外をスローする代わりにTryParse()返すバージョンもあることに注意してください。バリエーションfalseDateTime.ParseExact()あります。DateTime.TryParseExact()

日時以外の他のデータ型にも同じアプローチを使用します。最初に入力文字列を正しいデータ型(整数、浮動小数点数など)に変換し、さまざまなParse()またはTryParse()メソッドを使用してから、この変換の結果をフォーマットします。

于 2012-06-01T15:05:51.037 に答える
1

ToStringは、元の値を変更せずに値を返します。

それ以外の

dob.ToString("MM/dd/YY");

使用する

dob = dob.ToString("MM/dd/YY");
于 2012-06-01T15:00:54.597 に答える
1

まず、文字列を(またはメソッドDateTimeを介して)インスタンスに解析します。インスタンスで、(..)を呼び出すことができます。Parse()TryParse()DateTimeToString

于 2012-06-01T15:01:39.010 に答える
1

上記の形式を使用すると、.ToString( "MM / dd / YY")形式を使用するためにDateTimeに変換し直す必要があります。ToStringがオブジェクト/値を文字列表現に変換するために使用され、DateTimeオブジェクトがフォーマットを受け入れるのに十分優れている理由は。

すでに文字列になっているものをフォーマットする場合は、String.Formatを使用する必要があります。次のリンクにアクセスしてください:http: //msdn.microsoft.com/en-us/library/dwhawy9k.aspx。このリンクは、標準の数値フォーマッターを示しています。

独自の文字列形式を作成することもできます。IFormatProviderとICustomFormatterを調べます:http: //msdn.microsoft.com/en-us/library/system.icustomformatter.aspx

于 2012-06-01T15:04:43.283 に答える
0

最初に数値/DateTimeに解析してから、文字列フォーマット変数を使用することをお勧めします。これが必要になる理由の例として、「01/02/1990」文字列が。を使用して解析しない限り、1月2日から2月1日まであいまいであると考えてくださいDateTime.ParseExact

.NETの組み込みの文化に敏感な文字列フォーマット機能を使用できるように、「独自のロール」(たとえばStringBuilderを使用)よりもこれをお勧めします。

于 2012-06-01T15:00:16.280 に答える