簡體   English   中英

了解Go中的time.Parse函數

[英]Understanding the time.Parse function in Go

我目前正在將代碼從go移植到c#,並遇到了這段(簡化的)代碼。 我知道它轉換給定的字符串171228175744.085使用給定的格式060102150405

官方文檔僅包含使用常見格式(如2017-Feb-1示例,而不使用此格式(可能的時間戳?)。

我確實知道這將導致時間2017-12-28 17:57:44.085 +0000 UTC ,但是我不知道如何,因為我不知道字符串171228175744.085和布局代表什么。 我確實知道其中一些信息與GPS有關。 因此,我的問題是:有人知道如何在c#中執行此操作嗎?

package main

import (
    "fmt"
    "time"
)

func main() {
    t, err := time.Parse("060102150405", "171228175744.085")
    if err == nil{
        fmt.Println(t)
    }

}

圍繞time.Format的文檔解釋了格式的含義。

引用:

Format returns a textual representation of the time value formatted
according to layout, which defines the format by showing how the 
reference time, defined to be

Mon Jan 2 15:04:05 -0700 MST 2006

您的示例中的格式字符串: 060102150405告訴時間解析器查找以下內容:

  • 06:年
  • 01:月
  • 02:每月的某天
  • 15:一天中的小時
  • 04:分鍾
  • 05:第二

這是一種告訴解析器如何解釋每個數字的便捷方法。 如果仔細看,您會發現數字沒有被重用,因此當您說06 ,解析器會將其匹配到2006

在C#中,可以使用datetime.ParseExact 類似於以下內容:

DateTime.ParseExact(dateString, "yyMMddhhmmss", some_provider);

(注意:我沒有嘗試過上面的C#代碼段。您可能需要對其進行調整)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM