如何使用 DateComponentsFormatter 在 HH:MM 中格式化从 00:00 开始的时间间隔偏移

问题描述

我想以 HH:MM 格式显示一个以毫秒为单位的值

示例:

  • 我的输入为 0,输出应为 00:00
  • 如果输入是 3600000,我需要的输出是 01:00

我尝试了以下逻辑,但没有奏效。


    func secondsToHourMinformat(time: TimeInterval) -> String {
        let formatter = DateComponentsFormatter()
        formatter.allowedUnits = [.hour,.minute]
        return formatter.string(from: time) 
    }

解决方法

您的代码几乎是正确的,只是有一些遗漏。

  1. A OracleDataAdapter.Fill 以秒为单位表示您正在传递毫秒,因此您需要除以 1000
  2. 您需要将 string select = "SELECT qwe FROM employee"; // 'employee' does not contain 'qwe' OracleDataAdapter adapter = new OracleDataAdapter(select,connection); adapter.FillError += Adapter_FillError; try { adapter.Fill(ds,"zak"); } catch (OracleException ex) { MessageBox.Show(ex.Message); } private void Adapter_FillError(object sender,FillErrorEventArgs e) { MessageBox.Show(e.Errors.Message); } 设置为 TimeInterval,以免在输出中出现零抑制
  3. 您需要以某种方式处理 .zeroFormattingBehaviour 的可选返回;我已将您的函数更改为返回 .pad
string(from:)