【问题标题】:Create a new time from hours, minutes, seconds [closed]从小时,分钟,秒创建一个新时间[关闭]
【发布时间】:2020-10-26 21:57:06
【问题描述】:

长话短说,我可以访问的数据是我有小时、分钟、秒。我希望将其转换为时间对象(没有日期)。这可能在go中吗?

例子:

Hours := 17
Minutes := 55
Seconds := 25.62

我想做类似的事情

t := time.Parse(Hours, Minutes, Seconds) // hoping this reads 17:55:25.62

我发现的一切似乎都需要日期或需要日期的格式。

有什么想法吗?

【问题讨论】:

  • 一个时刻有年、月、日、时、分、秒等。你是在问像time.Duration(hours * time.Hour + minutes * time.Minute + seconds * time.Second)这样的持续时间吗?
  • 您可能想改用civil.Time。它提供civil.ParseTime 就像您需要的一样。就像@MuffinTop 说的那样,你不应该使用 Go 的 time.Time,因为它有年份、月份等。
  • "我希望将其转换为时间对象(不带日期)" 这可以满足您的要求吗? type DatelessTime bool; func NewDatelessTime(h int, m int, s float64) bool { return h<m } ?可能不是。问问自己“没有日期的时间对象”是什么以及如何使用它。 (提示:一个时钟读数,基本上无法使用)。

标签: go time


【解决方案1】:

我希望将其转换为时间对象(没有日期)。这可能在go中吗?

不使用标准库。 time 包提供了两种主要的数据类型:Date,它描述了一个时间点;和Duration,它描述了一个时间间隔。没有日期组件的时间没有标准库表示。

如果你真的要问是否可以在 Go 中表示这样的东西,答案只能是“当然可以”——例如:

type JustTime struct {
    Hour int
    Minute int
    Second float
}

可以解决问题,但这是否有用完全取决于您的特定用例。

【讨论】:

    猜你喜欢
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    相关资源
    最近更新 更多