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

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

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

日付の変換

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

■88474 / inTopicNo.1)  日付の変換
  
□投稿者/ なつ (3回)-(2018/09/03(Mon) 00:30:10)

分類:[VB.NET/VB2005 以降] 

またまた初歩的な質問ですみません。

下記を4点を出来るだけ簡単に変換をする方法はありませんか?

@ "2018/09/03" を "20180903" に変換。
その逆の
A "20180903" を "2018/09/03" に変換。

B "2018/9/3" を "2018/09/03" に変換。
その逆の
C "2018/09/03" を "2018/9/3" に変換。
引用返信 編集キー/
■88476 / inTopicNo.2)  Re[1]: 日付の変換
□投稿者/ 魔界の仮面弁士 (1805回)-(2018/09/03(Mon) 01:15:43)
2018/09/03(Mon) 01:34:54 編集(投稿者)

No88474 (なつ さん) に返信
> またまた初歩的な質問ですみません。

まずはどのバージョンの VB を使っているのかぐらいは書きましょうよ。(^_^;
No88409 の時も、sr1 が何を表しているか記載されていませんでしたし。


> 下記を4点を出来るだけ簡単に変換をする方法はありませんか?
> @ "2018/09/03" を "20180903" に変換。
"2018/09/03" は Date 型ですか? String 型ですか?

String 型だとしたら
 Dim s1 As String = "2018/09/03"
 Dim s2 As String = s1.Replace("/", "")
が最短かと思います。Date 型の場合は後述。


> A "20180903" を "2018/09/03" に変換。
固定文字数なら Substring で切り出すとか。

Dim s1 As String = "20180903"
Dim s2 As String = s1.Substring(0, 4) & "/" & s1.Substring(4,2) & "/" & s1.Substring(6,2)

または後述する Date 型を使った方法で。

> @ "2018/09/03" を "20180903" に変換。
> A "20180903" を "2018/09/03" に変換。
> B "2018/9/3" を "2018/09/03" に変換。
> C "2018/09/03" を "2018/9/3" に変換。

いずれのパターンも、変換前の文字列を ymd As String と仮定して
 Dim fp As IFormatProvider = CultureInfo.InvariantCulture
 Dim dst As Date = Date.ParseExact(ymd , New String(){"yyyyMMdd", "yyyy/M/d"}, fp, DateTimeStyles.AllowWhiteSpaces)
とすれば日付型になるので、あとは書式指定してやれば OK。

 s = dst.ToString("yyyyMMdd", fp) '20180903
 s = dst.ToString("yyyy/M/d", fp) '2018/9/3
 s = dst.ToString("yyyy/MM/dd", fp) '2018/09/03
引用返信 編集キー/
■88488 / inTopicNo.3)  Re[2]: 日付の変換
□投稿者/ なつ (4回)-(2018/09/03(Mon) 19:07:20)
No88476 (魔界の仮面弁士 さん) に返信

"2018/09/03" は String 型でした。すみません。
次回からはバージョンも書くようにします。

教えて頂いたこと早速使わせて頂きました。

ありがとうございます。

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

このトピックをツリーで一括表示


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

このトピックに書きこむ