- - PR -
日付の型変換
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-10-08 09:27
現在、.NET2002でC#を使っているのですがDB(SQLサーバー)上で20030910と入ってる日付データ(String型)を、2003910として表示させたいのですがどうしたら良いでしょうか?
現在、実行してもString型をint型に変換できませんとエラーが出てしまいます。 お手数ですが、ソースを書いていただけるとありがたいです。 よろしくお願いします。 | ||||
|
投稿日時: 2003-10-08 09:47
string str = "20030910";
int i = System.Int32.Parse(str); こういうことでしょうか。。。 | ||||
|
投稿日時: 2003-10-08 10:09
kudanさんこんにちは
入っているデータが年4桁、月2桁、日2桁と保障されているのなら str.Substring(0,4) + int.Parse(str.Substring(4,2)).ToString() + int.Parse(str.Substring(6,2)).ToString(); でもいけると思いますが(もっといいコードはあると思いますが・・)、 どのようなソースでエラーがでてるんですか? SQLサーバでDateTime型で入っていたら楽なのですが最初からStringなのですよね?・・ またはStringでも"2003/09/10"であったらすぐDateTimeに変換できますし。 | ||||
|
投稿日時: 2003-10-08 10:58
DateTime.ParseExact("20030910", "yyyyMMdd", New System.Globalization.CultureInfo("ja-JP")).ToString("yyyyMd") VB.NETですので、適切に変換してください。 "200030910"を、西暦4桁、月0先行2桁、日0先行2桁でDateTime型に解釈。このとき、文字列の解釈に「日本-日本語」のルールを使う。できたDateTime型を、西暦4桁、月1〜2桁、日1〜2桁の文字列に変換。 #### ↓なちゃさん DateTime.ParseExact(usFmt, "dd-MMM-yyyy", _ New System.Globalization.CultureInfo("en-US")) ってやっているところがあったから、コピってきたのよぉ〜(笑) [ メッセージ編集済み 編集者: Jitta 編集日時 2003-10-08 17:03 ] | ||||
|
投稿日時: 2003-10-08 14:02
なんとなく、 System.Globalization.CultureInfo.InvariantCulture を指定する方が、自然な気がしないでもないです。 # 「日本-日本語」という解釈に特に意味がないため… | ||||
|
投稿日時: 2003-10-10 14:03
みなさん、回答のほどありがとうございました。
きちんと、表示させることができたので本当に良かったです。 |
1