Debugging 在Delve中调试时理解'time.time'值
调试处理Debugging 在Delve中调试时理解'time.time'值,debugging,go,Debugging,Go,调试处理time.time值的程序时,我需要能够打印值并理解它们。在Delve中,如果我打印类型为time.time的变量,它将打印对象的内部结构,并且不允许我在对象上运行time.time方法 如何理解此结构,并将其转换为我对Unix()、UnixNano()或String()函数所打印内容的正常理解 例如: $ dlv test (dlv) b calendar.go:200 (dlv) p appt time.Time { wall: 0, ext: 63673770600, loc: *
time.time
值的程序时,我需要能够打印值并理解它们。在Delve中,如果我打印类型为time.time
的变量,它将打印对象的内部结构,并且不允许我在对象上运行time.time
方法
如何理解此结构,并将其转换为我对Unix()
、UnixNano()
或String()
函数所打印内容的正常理解
例如:
$ dlv test
(dlv) b calendar.go:200
(dlv) p appt
time.Time {
wall: 0,
ext: 63673770600,
loc: *time.Location {
name: "Local",
zone: []time.zone len: 4, cap: 4, [
(*time.zone)(0xc0000a8100),
],
tx: []time.zoneTrans len: 235, cap: 235, [
(*time.zoneTrans)(0xc0000bb000),
...+171 more
],
cacheStart: 1520751600,
cacheEnd: 1541311200,
cacheZone: *(*time.zone)(0xc0000a8100),},}
或在值列表的情况下:
(dlv) p dates
[]time.Time len: 2, cap: 2, [
{
wall: 0,
ext: 63673689600,
loc: *(*time.Location)(0xc00008e9c0),},
{
wall: 0,
ext: 63673776000,
loc: *(*time.Location)(0xc00008ea80),},
]
我发现我需要钻研。在批准和发布之前,我能做些什么来理解这些价值观并将其转换为更具可读性的形式
作为一种解决方法,我考虑添加字符串类型的新变量,并根据需要使用.string()
或.Format(…)
的输出进行更新。有更好的选择吗?添加您想要的功能似乎已经结束
关闭时,您可以通过调用时间值上的方法来格式化
调用t.Format(…)或调用t.String()