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

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

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

Re[3]: yyyymmdd をyyyy/mm/ddへ変換


(過去ログ 63 を表示中)

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

■36664 / inTopicNo.1)  yyyymmdd をyyyy/mm/ddへ変換
  
□投稿者/ てす (1回)-(2009/06/03(Wed) 13:32:17)

分類:[.NET 全般] 

ASP.NET3.0 C#開発
文字列20090220 を 2009/02/20
文字列120606 を 12:06:06 とする簡単な方法をお願いします
引用返信 編集キー/
■36668 / inTopicNo.2)  Re[1]: yyyymmdd をyyyy/mm/ddへ変換
□投稿者/ みきぬ (454回)-(2009/06/03(Wed) 13:46:36)
意図に沿ってるかは知らない。

"20090220".Insert(6, "/").Insert(4, "/");
"120606".Insert(4, ":").Insert(2, ":");

引用返信 編集キー/
■36669 / inTopicNo.3)  Re[2]: yyyymmdd をyyyy/mm/ddへ変換
□投稿者/ てす (2回)-(2009/06/03(Wed) 13:48:52)
No36668 (みきぬ さん) に返信
> 意図に沿ってるかは知らない。
>
> "20090220".Insert(6, "/").Insert(4, "/");
> "120606".Insert(4, ":").Insert(2, ":");
ありがとうございます
やりたい内容は20090220などが存在する日時かを判断するものです

"20090220".Insert(6, "/").Insert(4, "/");
"120606".Insert(4, ":").Insert(2, ":");

をいれてDateTimeのTryParseで対応しようかと思います

引用返信 編集キー/
■36670 / inTopicNo.4)  Re[3]: yyyymmdd をyyyy/mm/ddへ変換
□投稿者/ .SHO (845回)-(2009/06/03(Wed) 13:54:59)
まぁ、みきぬさんの方が簡単そう。。。

using System;

public class p {
  public static void Main( string[] args ) {
    string s1 = "20090220";
    string s2 = "120606";

    Console.WriteLine( s1.Substring( 0, 4 ) + "/" +
                       s1.Substring( 4, 2 ) + "/" +
                       s1.Substring( 6, 2 ) );

    Console.WriteLine( s2.Substring( 0, 2 ) + ":" +
                       s2.Substring( 2, 2 ) + ":" +
                       s2.Substring( 4, 2 ) );
  }
}

引用返信 編集キー/
■36671 / inTopicNo.5)  Re[3]: yyyymmdd をyyyy/mm/ddへ変換
□投稿者/ Hongliang (410回)-(2009/06/03(Wed) 14:03:48)
DateTime.TryParseExact の方が便利ですよ。
それより期待する形式でなかった場合にどうするかが問題。
引用返信 編集キー/
■36676 / inTopicNo.6)  Re[4]: yyyymmdd をyyyy/mm/ddへ変換
□投稿者/ やじゅ (1024回)-(2009/06/03(Wed) 14:50:32)
やじゅ さんの Web サイト
2009/06/03(Wed) 14:58:06 編集(投稿者)
2009/06/03(Wed) 14:52:06 編集(投稿者)

No36671 (Hongliang さん) に返信
> DateTime.TryParseExact の方が便利ですよ。

VB.NETですが・・・
Dim dt As Date = Date.ParseExact("20090603", "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture)

CDate(Format(CDbl("20090603"), "0000\/00\/00"))
CDate(Format(20090603, "0000\/00\/00"))

これを見つけるのに、「Format 魔界の仮面弁士」のキーワードで検索したのは、ないしょ(^^;
引用返信 編集キー/
■36678 / inTopicNo.7)  Re[5]: yyyymmdd をyyyy/mm/ddへ変換
□投稿者/ 魔界の仮面弁士 (1118回)-(2009/06/03(Wed) 15:11:28)
2009/06/03(Wed) 15:13:32 編集(投稿者)
No36676 (やじゅ さん) に返信
> ■No36671 (Hongliang さん) に返信
> これを見つけるのに、「Format 魔界の仮面弁士」のキーワードで検索したのは、ないしょ(^^;

# ん? (^_^;) 呼ばれた…わけでは無いのかな。

やじゅ さんのネタ元は、VBレスキュー(VB.NET板)の 2008/05/27 15:05 のスレッドかな?
http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?mode=allread&no=7618&page=270


> Dim dt As Date = Date.ParseExact("20090603", "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture)
今回の場合は No36669 
>>> 存在する日時かを判断するものです
とありますから、ParseExact を使うのではなく、
Hongliang さんが紹介された TryParseExact の方が適切かと思いますよ。

引用返信 編集キー/
■36679 / inTopicNo.8)  Re[6]: yyyymmdd をyyyy/mm/ddへ変換
□投稿者/ やじゅ (1025回)-(2009/06/03(Wed) 15:49:12)
やじゅ さんの Web サイト
No36678 (魔界の仮面弁士 さん) に返信
> # ん? (^_^;) 呼ばれた…わけでは無いのかな。
>
> やじゅ さんのネタ元は、VBレスキュー(VB.NET板)の 2008/05/27 15:05 のスレッドかな?
> http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?mode=allread&no=7618&page=270
>

はい、そうです。困ったときは、魔界の仮面弁士 さん頼ればいいかなと・・・

> とありますから、ParseExact を使うのではなく、
> Hongliang さんが紹介された TryParseExact の方が適切かと思いますよ。

すみません、Tryを見落としてました。
引用返信 編集キー/
■36681 / inTopicNo.9)  Re[7]: yyyymmdd をyyyy/mm/ddへ変換
□投稿者/ ぱぱいやん (36回)-(2009/06/03(Wed) 16:32:01)
ぱぱいやん さんの Web サイト
No36679 (やじゅ さん) に返信
> ■No36678 (魔界の仮面弁士 さん) に返信
>># ん? (^_^;) 呼ばれた…わけでは無いのかな。
>>
>>やじゅ さんのネタ元は、VBレスキュー(VB.NET板)の 2008/05/27 15:05 のスレッドかな?
>>http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?mode=allread&no=7618&page=270
>>
>
> はい、そうです。困ったときは、魔界の仮面弁士 さん頼ればいいかなと・・・

魔界の仮面弁士さんは、生ける[F1]キーと呼ばれているくらいの人ですからね。
TryParseExact を使った例って、こんな感じかな?

var s = "12341212 123456";
var ca = System.Globalization.CultureInfo.CurrentCulture;
var st = System.Globalization.DateTimeStyles.None;
DateTime r;
if (DateTime.TryParseExact(s, "yyyyMMdd HHmmss", ca, st, out r)) Console.WriteLine(r);

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -