我目前正在将代码从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)
}
}
答案 0 :(得分:3)
围绕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
时,解析器会将其与2006
匹配。
在C#中,您可以使用datetime.ParseExact。有点像:
DateTime.ParseExact(dateString, "yyMMddhhmmss", some_provider);
(注意:我没有尝试过上面的C#片段。你可能需要调整它)