時間表記の変換について

いつも大変お世話になっております。

Excelで取得した文字列「午前9時」や「午後4時」という標記を、
「9:00」「16:00」に変換することはできますか???

ご存知のことがあればご教授ください。

Hi @kiki1

Input= "9 a.m."
Output= DateTime.ParseExact(Input.Replace(".",""),"h tt",System.Globalization.CultureInfo.InvariantCulture).ToString("HH:mm")


Regards

1 Like

こんにちは

入力は全角文字のようなので、それの変換も必要です。

strData ="午後4時"

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance)
ci = New System.Globalization.CultureInfo("ja-JP")
ci.DateTimeFormat.Calendar = new System.Globalization.JapaneseCalendar()

としておいて

DateTime.ParseExact(StrConv(strData,vbNarrow,&H411),"tth時",ci).ToString("HH:mm")

Sample
Sample20240105-4.zip (2.7 KB)

入力に分が含まれる場合は、もう少し工夫が必要です。

アドバイスありがとうございます。
分が含まれない場合、含まれる場合、どちらにも対応できるようにしたいのですが、可能でしょうか?

両方に対応するには、例えば以下の式を使います。

DateTime.ParseExact(StrConv(strData,vbNarrow,&H411),{"tth時","tth時m分"},ci).ToString("HH:mm")

ご教授ありがとうございます。
これで、更に効率化が進みます :relieved:

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.