|
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
|