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

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

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

Re[3]: DateTime型で「10th Aug 2009」と表示する


(過去ログ 68 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■39550 / inTopicNo.1)  DateTime型で「10th Aug 2009」と表示する
  
□投稿者/ sanae (1回)-(2009/08/10(Mon) 21:22:06)

分類:[C#] 

DateTime型で「10th Aug 2009」と表示するには、
どのように書式をフォーマットすればよいでしょう?

引用返信 編集キー/
■39553 / inTopicNo.2)  Re[1]: DateTime型で「10th Aug 2009」と表示する
□投稿者/ やじゅ (1202回)-(2009/08/10(Mon) 22:38:55)
やじゅ さんの Web サイト
No39550 (sanae さん) に返信
> DateTime型で「10th Aug 2009」と表示するには、
> どのように書式をフォーマットすればよいでしょう?
>

"th"はやり方が分からなかったので、"?"を文字列置換で対処しました。
MessageBox.Show(DateTime.Now.ToString("dd? MMM yyyy", new System.Globalization.CultureInfo("en-US")).Replace("?","th"));

カスタム DateTime 書式指定文字列
http://msdn.microsoft.com/ja-jp/library/8kb3ddd4(VS.80).aspx#UsingSingleSpecifiers
引用返信 編集キー/
■39554 / inTopicNo.3)  Re[2]: DateTime型で「10th Aug 2009」と表示する
□投稿者/ もりお (30回)-(2009/08/10(Mon) 22:54:55)
No39553 (やじゅ さん) に返信
> ■No39550 (sanae さん) に返信
>>DateTime型で「10th Aug 2009」と表示するには、
>>どのように書式をフォーマットすればよいでしょう?
>>
>
> "th"はやり方が分からなかったので、"?"を文字列置換で対処しました。
> MessageBox.Show(DateTime.Now.ToString("dd? MMM yyyy", new System.Globalization.CultureInfo("en-US")).Replace("?","th"));

これでも出来るみたいです。
DateTime.Now.ToString("dd'th' MMM yyyy", DateTimeFormatInfo.InvariantInfo)

参考
http://msdn.microsoft.com/ja-jp/library/k494fzbf(VS.80).aspx


引用返信 編集キー/
■39555 / inTopicNo.4)  Re[2]: DateTime型で「10th Aug 2009」と表示する
□投稿者/ sanae (3回)-(2009/08/10(Mon) 22:58:51)
No39553 (やじゅ さん) に返信
やじゅさん
ありがとうございます。
できるんですね。
.Replace("1","1st")
とか、列挙するしかないかと途方にくれてたところでした。
しかしながら、thをReplaceして表現しているってことは、ひょっとして、そう書かないとだめなのでしょうか。
めんどうなので列挙しちゃいました。
DateTime.Now.ToString("dd? MMM yyyy",new System.Globalization.CultureInfo("en-US")).Replace("?","th").Replace("1th","1st").Replace("2th","2nd").Replace("3th","3rd").Replace("11st","11th").Replace("12nd","12th");

解決済み
引用返信 編集キー/
■39557 / inTopicNo.5)  Re[3]: DateTime型で「10th Aug 2009」と表示する
□投稿者/ Azulean (431回)-(2009/08/10(Mon) 23:11:36)
No39555 (sanae さん) に返信
> めんどうなので列挙しちゃいました。
> DateTime.Now.ToString("dd? MMM yyyy",new System.Globalization.CultureInfo("en-US")).Replace("?","th").Replace("1th","1st").Replace("2th","2nd").Replace("3th","3rd").Replace("11st","11th").Replace("12nd","12th");

13rd → 13th と修正する処理が抜けていませんか?

# IFormatProvider とか様子見したら、大変そうなので考えるのを辞めた。。。
解決済み
引用返信 編集キー/
■39559 / inTopicNo.6)  Re[3]: DateTime型で「10th Aug 2009」と表示する
□投稿者/ sanae (4回)-(2009/08/10(Mon) 23:30:29)
Azuleanさん
ありがとうございます。
ほんとだ。抜けてました。

解決済み
引用返信 編集キー/
■39561 / inTopicNo.7)  Re[3]: DateTime型で「10th Aug 2009」と表示する
□投稿者/ やじゅ (1203回)-(2009/08/11(Tue) 00:47:12)
やじゅ さんの Web サイト
No39555 (sanae さん) に返信
> しかしながら、thをReplaceして表現しているってことは、ひょっとして、そう書かないとだめなのでしょうか。
> めんどうなので列挙しちゃいました。
> DateTime.Now.ToString("dd? MMM yyyy",new System.Globalization.CultureInfo("en-US")).Replace("?","th").Replace("1th","1st").Replace("2th","2nd").Replace("3th","3rd").Replace("11st","11th").Replace("12nd","12th");
>

もりおさんが示した方法でもいいですね。'th'はシングルクォーテーションで囲めば良かったのか、ふむふむ。
DateTime.Now.ToString("dd'th' MMM yyyy", DateTimeFormatInfo.InvariantInfo)

英語圏に慣れてないので、てっきり"th"だけかと思ってた・・・
1st, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th, 9th, 10th, 11th, etc
書式でそこまで対応してなさそうです、下記サイトはExcelではありますが、MODかSelectとかで処理してますね。
Ordinal numbers, and Ordinal numbers in dates (#ordinal)
http://www.mvps.org/dmcritchie/excel/datetime.htm
解決済み
引用返信 編集キー/
■39584 / inTopicNo.8)  Re[4]: DateTime型で「10th Aug 2009」と表示する
□投稿者/ aetos (192回)-(2009/08/11(Tue) 10:52:52)
aetos さんの Web サイト
2009/08/11(Tue) 10:53:03 編集(投稿者)

No39557 (Azulean さん) に返信
> ■No39555 (sanae さん) に返信
>>めんどうなので列挙しちゃいました。
>>DateTime.Now.ToString("dd? MMM yyyy",new System.Globalization.CultureInfo("en-US")).Replace("?","th").Replace("1th","1st").Replace("2th","2nd").Replace("3th","3rd").Replace("11st","11th").Replace("12nd","12th");
>
> 13rd → 13th と修正する処理が抜けていませんか?
>
> # IFormatProvider とか様子見したら、大変そうなので考えるのを辞めた。。。

# 11st、12nd、13rd だと思ってました…恥ずかしい。
# 11、12、13 だけは、-one、-two、-three じゃない特別形なので th ってことでいいんですかね。
解決済み
引用返信 編集キー/
■39588 / inTopicNo.9)  Re[5]: DateTime型で「10th Aug 2009」と表示する
□投稿者/ .SHO (1000回)-(2009/08/11(Tue) 11:13:46)
> # 11、12、13 だけは、-one、-two、-three じゃない特別形なので th ってことでいいんですかね。

で、いいと思います。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -