none
時間字串(12:12a)如何轉成24小時制(00:12) RRS feed

  • 問題

  • 請問各位先進我有一個儀器每秒會固定送出一串字串
    字串包含日期 時間 溫度 濕度 風速......等等
    字串如下:
    19/03/25 12:03a   26.6   26.6   26.6    63   
    19/03/25 12:04a   26.6   26.6   26.6    63   
    19/03/25 12:34p   26.9   26.9   26.9    59
    19/03/25 12:35p   26.9   27.0   26.9    59

    其中時間欄位是以a和p來表示上下午
    我想把時間字串資料轉成24小時制
    在VB6我可以直接用Format得到我要的

    Format("11:01p", "hh:mm")
    ==>> 23:01

    Format("12:05a", "hh:mm")
    ==>> 00:05

    但是在VB.NET要如何做呢?
    • 已編輯 franken_lu 2019年3月26日 上午 05:42
    2019年3月26日 上午 05:41

解答

  • 不好意思,是C#語法沒錯,應該很容易翻過去VB.Net。
    剛才有錯而且方法比較不好,我修改了一下,確認可行。

    • 已標示為解答 franken_lu 2019年3月26日 上午 07:03
    2019年3月26日 上午 06:36

所有回覆

  • string time = "12:03p";
    time = time.Replace("p", " PM").Replace("a", " AM");
    DateTime dateTime = DateTime.ParseExact(time, "h:mm tt", System.Globalization.CultureInfo.InvariantCulture);

    • 已編輯 mosdeo 2019年3月26日 上午 06:32
    2019年3月26日 上午 06:11
  • 不好意思,是C#語法沒錯,應該很容易翻過去VB.Net。
    剛才有錯而且方法比較不好,我修改了一下,確認可行。

    • 已標示為解答 franken_lu 2019年3月26日 上午 07:03
    2019年3月26日 上午 06:36
  • 感謝回覆
    這個方法簡單多了。
    我之前用最笨的方法
    判斷字串長短還有最後字元a或p

    將有p的且時小於12的加12

    2019年3月26日 上午 07:05