Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Time values are unweildy #16

Open
pwaller opened this issue Sep 26, 2014 · 12 comments
Open

Time values are unweildy #16

pwaller opened this issue Sep 26, 2014 · 12 comments

Comments

@pwaller
Copy link

pwaller commented Sep 26, 2014

I just printed a time field and got this out. I understand that might be the desired behaviour in some cases, but it would be nice if there was a way to specify that a given type should have a simplified pretty form - this is a bit silly.

mytimefield: {
        sec:  63547322631,
        nsec: 0x1ec3a8c8,
        loc:  &time.Location{
            name: "Local",
            zone: {
                {name:"BST", offset:3600, isDST:true},
                {name:"GMT", offset:0, isDST:false},
                {name:"BDST", offset:7200, isDST:true},
                {name:"BST", offset:3600, isDST:false},
                {name:"BST", offset:3600, isDST:true},
                {name:"GMT", offset:0, isDST:false},
                {name:"GMT", offset:0, isDST:false},
            },
            tx: {
                {when:-1691964000, index:0x0, isstd:true, isutc:false},
                {when:-1680472800, index:0x1, isstd:true, isutc:false},
                {when:-1664143200, index:0x0, isstd:true, isutc:false},
                {when:-1650146400, index:0x1, isstd:false, isutc:false},
                {when:-1633903200, index:0x0, isstd:true, isutc:true},
                {when:-1617487200, index:0x1, isstd:true, isutc:true},
                {when:-1601848800, index:0x0, isstd:false, isutc:false},
                {when:-1586037600, index:0x1, isstd:false, isutc:false},
                {when:-1570399200, index:0x0, isstd:false, isutc:false},
                {when:-1552168800, index:0x1, isstd:false, isutc:false},
                {when:-1538344800, index:0x0, isstd:false, isutc:false},
                {when:-1522533600, index:0x1, isstd:false, isutc:false},
                {when:-1507500000, index:0x0, isstd:false, isutc:false},
                {when:-1490565600, index:0x1, isstd:false, isutc:false},
                {when:-1473631200, index:0x0, isstd:false, isutc:false},
                {when:-1460930400, index:0x1, isstd:false, isutc:false},
                {when:-1442786400, index:0x0, isstd:false, isutc:false},
                {when:-1428876000, index:0x1, isstd:false, isutc:false},
                {when:-1410732000, index:0x0, isstd:false, isutc:false},
                {when:-1396216800, index:0x1, isstd:false, isutc:false},
                {when:-1379282400, index:0x0, isstd:false, isutc:false},
                {when:-1364767200, index:0x1, isstd:false, isutc:false},
                {when:-1348437600, index:0x0, isstd:false, isutc:false},
                {when:-1333317600, index:0x1, isstd:false, isutc:false},
                {when:-1315778400, index:0x0, isstd:false, isutc:false},
                {when:-1301263200, index:0x1, isstd:false, isutc:false},
                {when:-1284328800, index:0x0, isstd:false, isutc:false},
                {when:-1269813600, index:0x1, isstd:false, isutc:false},
                {when:-1253484000, index:0x0, isstd:false, isutc:false},
                {when:-1238364000, index:0x1, isstd:false, isutc:false},
                {when:-1221429600, index:0x0, isstd:false, isutc:false},
                {when:-1206914400, index:0x1, isstd:false, isutc:false},
                {when:-1189980000, index:0x0, isstd:false, isutc:false},
                {when:-1175464800, index:0x1, isstd:false, isutc:false},
                {when:-1159135200, index:0x0, isstd:false, isutc:false},
                {when:-1143410400, index:0x1, isstd:false, isutc:false},
                {when:-1126476000, index:0x0, isstd:false, isutc:false},
                {when:-1111960800, index:0x1, isstd:false, isutc:false},
                {when:-1095631200, index:0x0, isstd:false, isutc:false},
                {when:-1080511200, index:0x1, isstd:false, isutc:false},
                {when:-1063576800, index:0x0, isstd:false, isutc:false},
                {when:-1049061600, index:0x1, isstd:false, isutc:false},
                {when:-1032127200, index:0x0, isstd:false, isutc:false},
                {when:-1017612000, index:0x1, isstd:false, isutc:false},
                {when:-1001282400, index:0x0, isstd:false, isutc:false},
                {when:-986162400, index:0x1, isstd:false, isutc:false},
                {when:-969228000, index:0x0, isstd:false, isutc:false},
                {when:-950479200, index:0x1, isstd:false, isutc:false},
                {when:-942012000, index:0x0, isstd:false, isutc:false},
                {when:-904518000, index:0x2, isstd:false, isutc:false},
                {when:-896050800, index:0x0, isstd:false, isutc:false},
                {when:-875487600, index:0x2, isstd:false, isutc:false},
                {when:-864601200, index:0x0, isstd:false, isutc:false},
                {when:-844038000, index:0x2, isstd:false, isutc:false},
                {when:-832546800, index:0x0, isstd:false, isutc:false},
                {when:-812588400, index:0x2, isstd:false, isutc:false},
                {when:-798073200, index:0x0, isstd:false, isutc:false},
                {when:-781052400, index:0x2, isstd:false, isutc:false},
                {when:-772066800, index:0x0, isstd:false, isutc:false},
                {when:-764805600, index:0x1, isstd:false, isutc:false},
                {when:-748476000, index:0x0, isstd:false, isutc:false},
                {when:-733356000, index:0x1, isstd:false, isutc:false},
                {when:-719445600, index:0x0, isstd:false, isutc:false},
                {when:-717030000, index:0x2, isstd:false, isutc:false},
                {when:-706748400, index:0x0, isstd:false, isutc:false},
                {when:-699487200, index:0x1, isstd:false, isutc:false},
                {when:-687996000, index:0x0, isstd:false, isutc:false},
                {when:-668037600, index:0x1, isstd:false, isutc:false},
                {when:-654732000, index:0x0, isstd:false, isutc:false},
                {when:-636588000, index:0x1, isstd:false, isutc:false},
                {when:-622072800, index:0x0, isstd:false, isutc:false},
                {when:-605743200, index:0x1, isstd:false, isutc:false},
                {when:-590623200, index:0x0, isstd:false, isutc:false},
                {when:-574293600, index:0x1, isstd:false, isutc:false},
                {when:-558568800, index:0x0, isstd:false, isutc:false},
                {when:-542239200, index:0x1, isstd:false, isutc:false},
                {when:-527119200, index:0x0, isstd:false, isutc:false},
                {when:-512604000, index:0x1, isstd:false, isutc:false},
                {when:-496274400, index:0x0, isstd:false, isutc:false},
                {when:-481154400, index:0x1, isstd:false, isutc:false},
                {when:-464220000, index:0x0, isstd:false, isutc:false},
                {when:-449704800, index:0x1, isstd:false, isutc:false},
                {when:-432165600, index:0x0, isstd:false, isutc:false},
                {when:-417650400, index:0x1, isstd:false, isutc:false},
                {when:-401320800, index:0x0, isstd:false, isutc:false},
                {when:-386200800, index:0x1, isstd:false, isutc:false},
                {when:-369266400, index:0x0, isstd:false, isutc:false},
                {when:-354751200, index:0x1, isstd:false, isutc:false},
                {when:-337816800, index:0x0, isstd:false, isutc:false},
                {when:-323301600, index:0x1, isstd:false, isutc:false},
                {when:-306972000, index:0x0, isstd:false, isutc:false},
                {when:-291852000, index:0x1, isstd:false, isutc:false},
                {when:-276732000, index:0x0, isstd:false, isutc:false},
                {when:-257983200, index:0x1, isstd:false, isutc:false},
                {when:-245282400, index:0x0, isstd:false, isutc:false},
                {when:-226533600, index:0x1, isstd:false, isutc:false},
                {when:-213228000, index:0x0, isstd:false, isutc:false},
                {when:-195084000, index:0x1, isstd:false, isutc:false},
                {when:-182383200, index:0x0, isstd:false, isutc:false},
                {when:-163634400, index:0x1, isstd:false, isutc:false},
                {when:-150933600, index:0x0, isstd:false, isutc:false},
                {when:-132184800, index:0x1, isstd:false, isutc:false},
                {when:-119484000, index:0x0, isstd:false, isutc:false},
                {when:-100735200, index:0x1, isstd:false, isutc:false},
                {when:-88034400, index:0x0, isstd:false, isutc:false},
                {when:-68680800, index:0x1, isstd:false, isutc:false},
                {when:-59004000, index:0x0, isstd:false, isutc:false},
                {when:-37242000, index:0x3, isstd:false, isutc:false},
                {when:57722400, index:0x5, isstd:false, isutc:false},
                {when:69818400, index:0x0, isstd:false, isutc:false},
                {when:89172000, index:0x1, isstd:false, isutc:false},
                {when:101268000, index:0x0, isstd:false, isutc:false},
                {when:120621600, index:0x1, isstd:false, isutc:false},
                {when:132717600, index:0x0, isstd:false, isutc:false},
                {when:152071200, index:0x1, isstd:false, isutc:false},
                {when:164167200, index:0x0, isstd:false, isutc:false},
                {when:183520800, index:0x1, isstd:false, isutc:false},
                {when:196221600, index:0x0, isstd:false, isutc:false},
                {when:214970400, index:0x1, isstd:false, isutc:false},
                {when:227671200, index:0x0, isstd:false, isutc:false},
                {when:246420000, index:0x1, isstd:false, isutc:false},
                {when:259120800, index:0x0, isstd:false, isutc:false},
                {when:278474400, index:0x1, isstd:false, isutc:false},
                {when:290570400, index:0x0, isstd:false, isutc:false},
                {when:309924000, index:0x1, isstd:false, isutc:false},
                {when:322020000, index:0x0, isstd:false, isutc:false},
                {when:341373600, index:0x1, isstd:false, isutc:false},
                {when:354675600, index:0x4, isstd:false, isutc:false},
                {when:372819600, index:0x5, isstd:false, isutc:false},
                {when:386125200, index:0x4, isstd:false, isutc:false},
                {when:404269200, index:0x5, isstd:false, isutc:false},
                {when:417574800, index:0x4, isstd:false, isutc:false},
                {when:435718800, index:0x5, isstd:false, isutc:false},
                {when:449024400, index:0x4, isstd:false, isutc:false},
                {when:467773200, index:0x5, isstd:false, isutc:false},
                {when:481078800, index:0x4, isstd:false, isutc:false},
                {when:499222800, index:0x5, isstd:false, isutc:false},
                {when:512528400, index:0x4, isstd:false, isutc:false},
                {when:530672400, index:0x5, isstd:false, isutc:false},
                {when:543978000, index:0x4, isstd:false, isutc:false},
                {when:562122000, index:0x5, isstd:false, isutc:false},
                {when:575427600, index:0x4, isstd:false, isutc:false},
                {when:593571600, index:0x5, isstd:false, isutc:false},
                {when:606877200, index:0x4, isstd:false, isutc:false},
                {when:625626000, index:0x5, isstd:false, isutc:false},
                {when:638326800, index:0x4, isstd:false, isutc:false},
                {when:657075600, index:0x5, isstd:false, isutc:false},
                {when:670381200, index:0x4, isstd:false, isutc:false},
                {when:688525200, index:0x5, isstd:false, isutc:false},
                {when:701830800, index:0x4, isstd:false, isutc:false},
                {when:719974800, index:0x5, isstd:false, isutc:false},
                {when:733280400, index:0x4, isstd:false, isutc:false},
                {when:751424400, index:0x5, isstd:false, isutc:false},
                {when:764730000, index:0x4, isstd:false, isutc:false},
                {when:782874000, index:0x5, isstd:false, isutc:false},
                {when:796179600, index:0x4, isstd:false, isutc:false},
                {when:814323600, index:0x5, isstd:false, isutc:false},
                {when:820454400, index:0x6, isstd:false, isutc:false},
                {when:828234000, index:0x4, isstd:false, isutc:false},
                {when:846378000, index:0x5, isstd:false, isutc:false},
                {when:859683600, index:0x4, isstd:false, isutc:false},
                {when:877827600, index:0x5, isstd:false, isutc:false},
                {when:891133200, index:0x4, isstd:false, isutc:false},
                {when:909277200, index:0x5, isstd:false, isutc:false},
                {when:922582800, index:0x4, isstd:false, isutc:false},
                {when:941331600, index:0x5, isstd:false, isutc:false},
                {when:954032400, index:0x4, isstd:false, isutc:false},
                {when:972781200, index:0x5, isstd:false, isutc:false},
                {when:985482000, index:0x4, isstd:false, isutc:false},
                {when:1004230800, index:0x5, isstd:false, isutc:false},
                {when:1017536400, index:0x4, isstd:false, isutc:false},
                {when:1035680400, index:0x5, isstd:false, isutc:false},
                {when:1048986000, index:0x4, isstd:false, isutc:false},
                {when:1067130000, index:0x5, isstd:false, isutc:false},
                {when:1080435600, index:0x4, isstd:false, isutc:false},
                {when:1099184400, index:0x5, isstd:false, isutc:false},
                {when:1111885200, index:0x4, isstd:false, isutc:false},
                {when:1130634000, index:0x5, isstd:false, isutc:false},
                {when:1143334800, index:0x4, isstd:false, isutc:false},
                {when:1162083600, index:0x5, isstd:false, isutc:false},
                {when:1174784400, index:0x4, isstd:false, isutc:false},
                {when:1193533200, index:0x5, isstd:false, isutc:false},
                {when:1206838800, index:0x4, isstd:false, isutc:false},
                {when:1224982800, index:0x5, isstd:false, isutc:false},
                {when:1238288400, index:0x4, isstd:false, isutc:false},
                {when:1256432400, index:0x5, isstd:false, isutc:false},
                {when:1269738000, index:0x4, isstd:false, isutc:false},
                {when:1288486800, index:0x5, isstd:false, isutc:false},
                {when:1301187600, index:0x4, isstd:false, isutc:false},
                {when:1319936400, index:0x5, isstd:false, isutc:false},
                {when:1332637200, index:0x4, isstd:false, isutc:false},
                {when:1351386000, index:0x5, isstd:false, isutc:false},
                {when:1364691600, index:0x4, isstd:false, isutc:false},
                {when:1382835600, index:0x5, isstd:false, isutc:false},
                {when:1396141200, index:0x4, isstd:false, isutc:false},
                {when:1414285200, index:0x5, isstd:false, isutc:false},
                {when:1427590800, index:0x4, isstd:false, isutc:false},
                {when:1445734800, index:0x5, isstd:false, isutc:false},
                {when:1459040400, index:0x4, isstd:false, isutc:false},
                {when:1477789200, index:0x5, isstd:false, isutc:false},
                {when:1490490000, index:0x4, isstd:false, isutc:false},
                {when:1509238800, index:0x5, isstd:false, isutc:false},
                {when:1521939600, index:0x4, isstd:false, isutc:false},
                {when:1540688400, index:0x5, isstd:false, isutc:false},
                {when:1553994000, index:0x4, isstd:false, isutc:false},
                {when:1572138000, index:0x5, isstd:false, isutc:false},
                {when:1585443600, index:0x4, isstd:false, isutc:false},
                {when:1603587600, index:0x5, isstd:false, isutc:false},
                {when:1616893200, index:0x4, isstd:false, isutc:false},
                {when:1635642000, index:0x5, isstd:false, isutc:false},
                {when:1648342800, index:0x4, isstd:false, isutc:false},
                {when:1667091600, index:0x5, isstd:false, isutc:false},
                {when:1679792400, index:0x4, isstd:false, isutc:false},
                {when:1698541200, index:0x5, isstd:false, isutc:false},
                {when:1711846800, index:0x4, isstd:false, isutc:false},
                {when:1729990800, index:0x5, isstd:false, isutc:false},
                {when:1743296400, index:0x4, isstd:false, isutc:false},
                {when:1761440400, index:0x5, isstd:false, isutc:false},
                {when:1774746000, index:0x4, isstd:false, isutc:false},
                {when:1792890000, index:0x5, isstd:false, isutc:false},
                {when:1806195600, index:0x4, isstd:false, isutc:false},
                {when:1824944400, index:0x5, isstd:false, isutc:false},
                {when:1837645200, index:0x4, isstd:false, isutc:false},
                {when:1856394000, index:0x5, isstd:false, isutc:false},
                {when:1869094800, index:0x4, isstd:false, isutc:false},
                {when:1887843600, index:0x5, isstd:false, isutc:false},
                {when:1901149200, index:0x4, isstd:false, isutc:false},
                {when:1919293200, index:0x5, isstd:false, isutc:false},
                {when:1932598800, index:0x4, isstd:false, isutc:false},
                {when:1950742800, index:0x5, isstd:false, isutc:false},
                {when:1964048400, index:0x4, isstd:false, isutc:false},
                {when:1982797200, index:0x5, isstd:false, isutc:false},
                {when:1995498000, index:0x4, isstd:false, isutc:false},
                {when:2014246800, index:0x5, isstd:false, isutc:false},
                {when:2026947600, index:0x4, isstd:false, isutc:false},
                {when:2045696400, index:0x5, isstd:false, isutc:false},
                {when:2058397200, index:0x4, isstd:false, isutc:false},
                {when:2077146000, index:0x5, isstd:false, isutc:false},
                {when:2090451600, index:0x4, isstd:false, isutc:false},
                {when:2108595600, index:0x5, isstd:false, isutc:false},
                {when:2121901200, index:0x4, isstd:false, isutc:false},
                {when:2140045200, index:0x5, isstd:false, isutc:false},
            },
            cacheStart: 1396141200,
            cacheEnd:   1414285200,
            cacheZone:  &time.zone{name:"BST", offset:3600, isDST:true},
        },
    },
@cee-dub
Copy link
Collaborator

cee-dub commented Sep 26, 2014

Totally agree!

Can you provide a test that reproduces it? I got a much shorter output last time I tried to reproduce the behavior in a test.

On Sep 26, 2014, at 03:20, Peter Waller notifications@github.com wrote:

I just printed a time field and got this out. I understand that might be the desired behaviour in some cases, but it would be nice if there was a way to specify that a given type should have a simplified pretty form - this is a bit silly.

mytimefield: {
sec: 63547322631,
nsec: 0x1ec3a8c8,
loc: &time.Location{
name: "Local",
zone: {
{name:"BST", offset:3600, isDST:true},
{name:"GMT", offset:0, isDST:false},
{name:"BDST", offset:7200, isDST:true},
{name:"BST", offset:3600, isDST:false},
{name:"BST", offset:3600, isDST:true},
{name:"GMT", offset:0, isDST:false},
{name:"GMT", offset:0, isDST:false},
},
tx: {
{when:-1691964000, index:0x0, isstd:true, isutc:false},
{when:-1680472800, index:0x1, isstd:true, isutc:false},
{when:-1664143200, index:0x0, isstd:true, isutc:false},
{when:-1650146400, index:0x1, isstd:false, isutc:false},
{when:-1633903200, index:0x0, isstd:true, isutc:true},
{when:-1617487200, index:0x1, isstd:true, isutc:true},
{when:-1601848800, index:0x0, isstd:false, isutc:false},
{when:-1586037600, index:0x1, isstd:false, isutc:false},
{when:-1570399200, index:0x0, isstd:false, isutc:false},
{when:-1552168800, index:0x1, isstd:false, isutc:false},
{when:-1538344800, index:0x0, isstd:false, isutc:false},
{when:-1522533600, index:0x1, isstd:false, isutc:false},
{when:-1507500000, index:0x0, isstd:false, isutc:false},
{when:-1490565600, index:0x1, isstd:false, isutc:false},
{when:-1473631200, index:0x0, isstd:false, isutc:false},
{when:-1460930400, index:0x1, isstd:false, isutc:false},
{when:-1442786400, index:0x0, isstd:false, isutc:false},
{when:-1428876000, index:0x1, isstd:false, isutc:false},
{when:-1410732000, index:0x0, isstd:false, isutc:false},
{when:-1396216800, index:0x1, isstd:false, isutc:false},
{when:-1379282400, index:0x0, isstd:false, isutc:false},
{when:-1364767200, index:0x1, isstd:false, isutc:false},
{when:-1348437600, index:0x0, isstd:false, isutc:false},
{when:-1333317600, index:0x1, isstd:false, isutc:false},
{when:-1315778400, index:0x0, isstd:false, isutc:false},
{when:-1301263200, index:0x1, isstd:false, isutc:false},
{when:-1284328800, index:0x0, isstd:false, isutc:false},
{when:-1269813600, index:0x1, isstd:false, isutc:false},
{when:-1253484000, index:0x0, isstd:false, isutc:false},
{when:-1238364000, index:0x1, isstd:false, isutc:false},
{when:-1221429600, index:0x0, isstd:false, isutc:false},
{when:-1206914400, index:0x1, isstd:false, isutc:false},
{when:-1189980000, index:0x0, isstd:false, isutc:false},
{when:-1175464800, index:0x1, isstd:false, isutc:false},
{when:-1159135200, index:0x0, isstd:false, isutc:false},
{when:-1143410400, index:0x1, isstd:false, isutc:false},
{when:-1126476000, index:0x0, isstd:false, isutc:false},
{when:-1111960800, index:0x1, isstd:false, isutc:false},
{when:-1095631200, index:0x0, isstd:false, isutc:false},
{when:-1080511200, index:0x1, isstd:false, isutc:false},
{when:-1063576800, index:0x0, isstd:false, isutc:false},
{when:-1049061600, index:0x1, isstd:false, isutc:false},
{when:-1032127200, index:0x0, isstd:false, isutc:false},
{when:-1017612000, index:0x1, isstd:false, isutc:false},
{when:-1001282400, index:0x0, isstd:false, isutc:false},
{when:-986162400, index:0x1, isstd:false, isutc:false},
{when:-969228000, index:0x0, isstd:false, isutc:false},
{when:-950479200, index:0x1, isstd:false, isutc:false},
{when:-942012000, index:0x0, isstd:false, isutc:false},
{when:-904518000, index:0x2, isstd:false, isutc:false},
{when:-896050800, index:0x0, isstd:false, isutc:false},
{when:-875487600, index:0x2, isstd:false, isutc:false},
{when:-864601200, index:0x0, isstd:false, isutc:false},
{when:-844038000, index:0x2, isstd:false, isutc:false},
{when:-832546800, index:0x0, isstd:false, isutc:false},
{when:-812588400, index:0x2, isstd:false, isutc:false},
{when:-798073200, index:0x0, isstd:false, isutc:false},
{when:-781052400, index:0x2, isstd:false, isutc:false},
{when:-772066800, index:0x0, isstd:false, isutc:false},
{when:-764805600, index:0x1, isstd:false, isutc:false},
{when:-748476000, index:0x0, isstd:false, isutc:false},
{when:-733356000, index:0x1, isstd:false, isutc:false},
{when:-719445600, index:0x0, isstd:false, isutc:false},
{when:-717030000, index:0x2, isstd:false, isutc:false},
{when:-706748400, index:0x0, isstd:false, isutc:false},
{when:-699487200, index:0x1, isstd:false, isutc:false},
{when:-687996000, index:0x0, isstd:false, isutc:false},
{when:-668037600, index:0x1, isstd:false, isutc:false},
{when:-654732000, index:0x0, isstd:false, isutc:false},
{when:-636588000, index:0x1, isstd:false, isutc:false},
{when:-622072800, index:0x0, isstd:false, isutc:false},
{when:-605743200, index:0x1, isstd:false, isutc:false},
{when:-590623200, index:0x0, isstd:false, isutc:false},
{when:-574293600, index:0x1, isstd:false, isutc:false},
{when:-558568800, index:0x0, isstd:false, isutc:false},
{when:-542239200, index:0x1, isstd:false, isutc:false},
{when:-527119200, index:0x0, isstd:false, isutc:false},
{when:-512604000, index:0x1, isstd:false, isutc:false},
{when:-496274400, index:0x0, isstd:false, isutc:false},
{when:-481154400, index:0x1, isstd:false, isutc:false},
{when:-464220000, index:0x0, isstd:false, isutc:false},
{when:-449704800, index:0x1, isstd:false, isutc:false},
{when:-432165600, index:0x0, isstd:false, isutc:false},
{when:-417650400, index:0x1, isstd:false, isutc:false},
{when:-401320800, index:0x0, isstd:false, isutc:false},
{when:-386200800, index:0x1, isstd:false, isutc:false},
{when:-369266400, index:0x0, isstd:false, isutc:false},
{when:-354751200, index:0x1, isstd:false, isutc:false},
{when:-337816800, index:0x0, isstd:false, isutc:false},
{when:-323301600, index:0x1, isstd:false, isutc:false},
{when:-306972000, index:0x0, isstd:false, isutc:false},
{when:-291852000, index:0x1, isstd:false, isutc:false},
{when:-276732000, index:0x0, isstd:false, isutc:false},
{when:-257983200, index:0x1, isstd:false, isutc:false},
{when:-245282400, index:0x0, isstd:false, isutc:false},
{when:-226533600, index:0x1, isstd:false, isutc:false},
{when:-213228000, index:0x0, isstd:false, isutc:false},
{when:-195084000, index:0x1, isstd:false, isutc:false},
{when:-182383200, index:0x0, isstd:false, isutc:false},
{when:-163634400, index:0x1, isstd:false, isutc:false},
{when:-150933600, index:0x0, isstd:false, isutc:false},
{when:-132184800, index:0x1, isstd:false, isutc:false},
{when:-119484000, index:0x0, isstd:false, isutc:false},
{when:-100735200, index:0x1, isstd:false, isutc:false},
{when:-88034400, index:0x0, isstd:false, isutc:false},
{when:-68680800, index:0x1, isstd:false, isutc:false},
{when:-59004000, index:0x0, isstd:false, isutc:false},
{when:-37242000, index:0x3, isstd:false, isutc:false},
{when:57722400, index:0x5, isstd:false, isutc:false},
{when:69818400, index:0x0, isstd:false, isutc:false},
{when:89172000, index:0x1, isstd:false, isutc:false},
{when:101268000, index:0x0, isstd:false, isutc:false},
{when:120621600, index:0x1, isstd:false, isutc:false},
{when:132717600, index:0x0, isstd:false, isutc:false},
{when:152071200, index:0x1, isstd:false, isutc:false},
{when:164167200, index:0x0, isstd:false, isutc:false},
{when:183520800, index:0x1, isstd:false, isutc:false},
{when:196221600, index:0x0, isstd:false, isutc:false},
{when:214970400, index:0x1, isstd:false, isutc:false},
{when:227671200, index:0x0, isstd:false, isutc:false},
{when:246420000, index:0x1, isstd:false, isutc:false},
{when:259120800, index:0x0, isstd:false, isutc:false},
{when:278474400, index:0x1, isstd:false, isutc:false},
{when:290570400, index:0x0, isstd:false, isutc:false},
{when:309924000, index:0x1, isstd:false, isutc:false},
{when:322020000, index:0x0, isstd:false, isutc:false},
{when:341373600, index:0x1, isstd:false, isutc:false},
{when:354675600, index:0x4, isstd:false, isutc:false},
{when:372819600, index:0x5, isstd:false, isutc:false},
{when:386125200, index:0x4, isstd:false, isutc:false},
{when:404269200, index:0x5, isstd:false, isutc:false},
{when:417574800, index:0x4, isstd:false, isutc:false},
{when:435718800, index:0x5, isstd:false, isutc:false},
{when:449024400, index:0x4, isstd:false, isutc:false},
{when:467773200, index:0x5, isstd:false, isutc:false},
{when:481078800, index:0x4, isstd:false, isutc:false},
{when:499222800, index:0x5, isstd:false, isutc:false},
{when:512528400, index:0x4, isstd:false, isutc:false},
{when:530672400, index:0x5, isstd:false, isutc:false},
{when:543978000, index:0x4, isstd:false, isutc:false},
{when:562122000, index:0x5, isstd:false, isutc:false},
{when:575427600, index:0x4, isstd:false, isutc:false},
{when:593571600, index:0x5, isstd:false, isutc:false},
{when:606877200, index:0x4, isstd:false, isutc:false},
{when:625626000, index:0x5, isstd:false, isutc:false},
{when:638326800, index:0x4, isstd:false, isutc:false},
{when:657075600, index:0x5, isstd:false, isutc:false},
{when:670381200, index:0x4, isstd:false, isutc:false},
{when:688525200, index:0x5, isstd:false, isutc:false},
{when:701830800, index:0x4, isstd:false, isutc:false},
{when:719974800, index:0x5, isstd:false, isutc:false},
{when:733280400, index:0x4, isstd:false, isutc:false},
{when:751424400, index:0x5, isstd:false, isutc:false},
{when:764730000, index:0x4, isstd:false, isutc:false},
{when:782874000, index:0x5, isstd:false, isutc:false},
{when:796179600, index:0x4, isstd:false, isutc:false},
{when:814323600, index:0x5, isstd:false, isutc:false},
{when:820454400, index:0x6, isstd:false, isutc:false},
{when:828234000, index:0x4, isstd:false, isutc:false},
{when:846378000, index:0x5, isstd:false, isutc:false},
{when:859683600, index:0x4, isstd:false, isutc:false},
{when:877827600, index:0x5, isstd:false, isutc:false},
{when:891133200, index:0x4, isstd:false, isutc:false},
{when:909277200, index:0x5, isstd:false, isutc:false},
{when:922582800, index:0x4, isstd:false, isutc:false},
{when:941331600, index:0x5, isstd:false, isutc:false},
{when:954032400, index:0x4, isstd:false, isutc:false},
{when:972781200, index:0x5, isstd:false, isutc:false},
{when:985482000, index:0x4, isstd:false, isutc:false},
{when:1004230800, index:0x5, isstd:false, isutc:false},
{when:1017536400, index:0x4, isstd:false, isutc:false},
{when:1035680400, index:0x5, isstd:false, isutc:false},
{when:1048986000, index:0x4, isstd:false, isutc:false},
{when:1067130000, index:0x5, isstd:false, isutc:false},
{when:1080435600, index:0x4, isstd:false, isutc:false},
{when:1099184400, index:0x5, isstd:false, isutc:false},
{when:1111885200, index:0x4, isstd:false, isutc:false},
{when:1130634000, index:0x5, isstd:false, isutc:false},
{when:1143334800, index:0x4, isstd:false, isutc:false},
{when:1162083600, index:0x5, isstd:false, isutc:false},
{when:1174784400, index:0x4, isstd:false, isutc:false},
{when:1193533200, index:0x5, isstd:false, isutc:false},
{when:1206838800, index:0x4, isstd:false, isutc:false},
{when:1224982800, index:0x5, isstd:false, isutc:false},
{when:1238288400, index:0x4, isstd:false, isutc:false},
{when:1256432400, index:0x5, isstd:false, isutc:false},
{when:1269738000, index:0x4, isstd:false, isutc:false},
{when:1288486800, index:0x5, isstd:false, isutc:false},
{when:1301187600, index:0x4, isstd:false, isutc:false},
{when:1319936400, index:0x5, isstd:false, isutc:false},
{when:1332637200, index:0x4, isstd:false, isutc:false},
{when:1351386000, index:0x5, isstd:false, isutc:false},
{when:1364691600, index:0x4, isstd:false, isutc:false},
{when:1382835600, index:0x5, isstd:false, isutc:false},
{when:1396141200, index:0x4, isstd:false, isutc:false},
{when:1414285200, index:0x5, isstd:false, isutc:false},
{when:1427590800, index:0x4, isstd:false, isutc:false},
{when:1445734800, index:0x5, isstd:false, isutc:false},
{when:1459040400, index:0x4, isstd:false, isutc:false},
{when:1477789200, index:0x5, isstd:false, isutc:false},
{when:1490490000, index:0x4, isstd:false, isutc:false},
{when:1509238800, index:0x5, isstd:false, isutc:false},
{when:1521939600, index:0x4, isstd:false, isutc:false},
{when:1540688400, index:0x5, isstd:false, isutc:false},
{when:1553994000, index:0x4, isstd:false, isutc:false},
{when:1572138000, index:0x5, isstd:false, isutc:false},
{when:1585443600, index:0x4, isstd:false, isutc:false},
{when:1603587600, index:0x5, isstd:false, isutc:false},
{when:1616893200, index:0x4, isstd:false, isutc:false},
{when:1635642000, index:0x5, isstd:false, isutc:false},
{when:1648342800, index:0x4, isstd:false, isutc:false},
{when:1667091600, index:0x5, isstd:false, isutc:false},
{when:1679792400, index:0x4, isstd:false, isutc:false},
{when:1698541200, index:0x5, isstd:false, isutc:false},
{when:1711846800, index:0x4, isstd:false, isutc:false},
{when:1729990800, index:0x5, isstd:false, isutc:false},
{when:1743296400, index:0x4, isstd:false, isutc:false},
{when:1761440400, index:0x5, isstd:false, isutc:false},
{when:1774746000, index:0x4, isstd:false, isutc:false},
{when:1792890000, index:0x5, isstd:false, isutc:false},
{when:1806195600, index:0x4, isstd:false, isutc:false},
{when:1824944400, index:0x5, isstd:false, isutc:false},
{when:1837645200, index:0x4, isstd:false, isutc:false},
{when:1856394000, index:0x5, isstd:false, isutc:false},
{when:1869094800, index:0x4, isstd:false, isutc:false},
{when:1887843600, index:0x5, isstd:false, isutc:false},
{when:1901149200, index:0x4, isstd:false, isutc:false},
{when:1919293200, index:0x5, isstd:false, isutc:false},
{when:1932598800, index:0x4, isstd:false, isutc:false},
{when:1950742800, index:0x5, isstd:false, isutc:false},
{when:1964048400, index:0x4, isstd:false, isutc:false},
{when:1982797200, index:0x5, isstd:false, isutc:false},
{when:1995498000, index:0x4, isstd:false, isutc:false},
{when:2014246800, index:0x5, isstd:false, isutc:false},
{when:2026947600, index:0x4, isstd:false, isutc:false},
{when:2045696400, index:0x5, isstd:false, isutc:false},
{when:2058397200, index:0x4, isstd:false, isutc:false},
{when:2077146000, index:0x5, isstd:false, isutc:false},
{when:2090451600, index:0x4, isstd:false, isutc:false},
{when:2108595600, index:0x5, isstd:false, isutc:false},
{when:2121901200, index:0x4, isstd:false, isutc:false},
{when:2140045200, index:0x5, isstd:false, isutc:false},
},
cacheStart: 1396141200,
cacheEnd: 1414285200,
cacheZone: &time.zone{name:"BST", offset:3600, isDST:true},
},
},

Reply to this email directly or view it on GitHub.

@kr
Copy link
Owner

kr commented Sep 29, 2014

Maybe package pretty should use TextMarshaler for types that satisfy it. That would cover time.Time.

http://golang.org/pkg/encoding/

@cee-dub
Copy link
Collaborator

cee-dub commented Sep 30, 2014

For example, this test:

func TestTime(t *testing.T) {
    type timer struct {
        t time.Time
    }

    tt := timer{t: time.Now()}
    s := fmt.Sprintf("%# v", Formatter(tt.t))
    t.Log(s)
}

Produces this output from go test -v -run TestTime:

    formatter_test.go:271: time.Time{
            sec:  63547633031,
            nsec: 0xfb4f9b0,
            loc:  &time.Location{},
        }

While that's probably not ideal, I'm not able to reproduce the massive output you're getting.

@cee-dub
Copy link
Collaborator

cee-dub commented Sep 30, 2014

Tossed up #17 with a test but no implementation to use TextMarshaler for time.Time specifically. Was able to reproduce the larger output by printing the time before pretty printing the time.

@kr
Copy link
Owner

kr commented Oct 1, 2014

I took a minute to implement this today, but I think it's not possible for unexported struct fields, e.g.

type t struct {
    x time.Time // note x is lowercase
}

@ruzz311
Copy link

ruzz311 commented Aug 26, 2015

I loved what this package gave me initially, but I ran into this problem as well. I came across it with an embedded time.Time in a struct I needed for custom UnmarshalXML. I tried to use a Stringer interface on the struct as well as a GoStringer interface before dropping into the code to see how this package constructed the output. I've only been writing go a few weeks so my knowladge of the API is still a little limited - any ideas for this issue in the last year?

@logrusorgru
Copy link

+1, It's a time.Location issue

        // ...
        UpdatedAt: time.Time{
            sec:  63592553721,
            nsec: 520131000,
            loc:  &time.Location{
                name: "localtime",
                zone: {
                    {name:"LMT", offset:10660, isDST:false},
                    {name:"TSAT", offset:10800, isDST:false},
                    {name:"STAT", offset:10800, isDST:false},
                    {name:"STAT", offset:14400, isDST:false},
                    {name:"VOLST", offset:18000, isDST:true},
                    {name:"VOLT", offset:14400, isDST:false},
                    {name:"VOLT", offset:14400, isDST:false},
                    {name:"VOLST", offset:18000, isDST:true},
                    {name:"VOLST", offset:14400, isDST:true},
                    {name:"VOLT", offset:10800, isDST:false},
                    {name:"MSK", offset:10800, isDST:false},
                    {name:"MSD", offset:14400, isDST:true},
                    {name:"MSK", offset:10800, isDST:false},
                    {name:"MSK", offset:14400, isDST:false},
                    {name:"MSK", offset:10800, isDST:false},
                },
                tx: {
                    {when:-2147483648, index:0x0, isstd:false, isutc:false},
                    {when:-1577761060, index:0x1, isstd:false, isutc:false},
                    {when:-1411873200, index:0x2, isstd:false, isutc:false},
                    {when:-1247540400, index:0x3, isstd:false, isutc:false},
                    {when:-256881600, index:0x5, isstd:false, isutc:false},
                    {when:354916800, index:0x4, isstd:false, isutc:false},
                    {when:370724400, index:0x5, isstd:true, isutc:false},
                    {when:386452800, index:0x4, isstd:true, isutc:false},
                    {when:402260400, index:0x5, isstd:true, isutc:false},
                    {when:417988800, index:0x4, isstd:true, isutc:false},
                    {when:433796400, index:0x5, isstd:false, isutc:false},
                    {when:449611200, index:0x4, isstd:true, isutc:false},
                    {when:465343200, index:0x6, isstd:true, isutc:false},
                    {when:481068000, index:0x7, isstd:true, isutc:false},
                    {when:496792800, index:0x6, isstd:true, isutc:false},
                    {when:512517600, index:0x7, isstd:false, isutc:false},
                    {when:528242400, index:0x6, isstd:false, isutc:false},
                    {when:543967200, index:0x7, isstd:false, isutc:false},
                    {when:559692000, index:0x6, isstd:false, isutc:false},
                    {when:575416800, index:0x7, isstd:false, isutc:false},
                    {when:591141600, index:0x6, isstd:false, isutc:false},
                    {when:606866400, index:0x8, isstd:false, isutc:false},
                    {when:622594800, index:0x9, isstd:false, isutc:false},
                    {when:638319600, index:0x8, isstd:false, isutc:false},
                    {when:654649200, index:0x9, isstd:false, isutc:false},
                    {when:670374000, index:0x6, isstd:false, isutc:false},
                    {when:701820000, index:0xb, isstd:false, isutc:false},
                    {when:717534000, index:0xa, isstd:false, isutc:false},
                    {when:733273200, index:0xb, isstd:false, isutc:false},
                    {when:748998000, index:0xc, isstd:false, isutc:false},
                    {when:764722800, index:0xb, isstd:false, isutc:false},
                    {when:780447600, index:0xc, isstd:false, isutc:false},
                    {when:796172400, index:0xb, isstd:false, isutc:false},
                    {when:811897200, index:0xc, isstd:false, isutc:false},
                    {when:828226800, index:0xb, isstd:false, isutc:false},
                    {when:846370800, index:0xc, isstd:false, isutc:false},
                    {when:859676400, index:0xb, isstd:false, isutc:false},
                    {when:877820400, index:0xc, isstd:false, isutc:false},
                    {when:891126000, index:0xb, isstd:false, isutc:false},
                    {when:909270000, index:0xc, isstd:false, isutc:false},
                    {when:922575600, index:0xb, isstd:false, isutc:false},
                    {when:941324400, index:0xc, isstd:false, isutc:false},
                    {when:954025200, index:0xb, isstd:false, isutc:false},
                    {when:972774000, index:0xc, isstd:false, isutc:false},
                    {when:985474800, index:0xb, isstd:false, isutc:false},
                    {when:1004223600, index:0xc, isstd:false, isutc:false},
                    {when:1017529200, index:0xb, isstd:false, isutc:false},
                    {when:1035673200, index:0xc, isstd:false, isutc:false},
                    {when:1048978800, index:0xb, isstd:false, isutc:false},
                    {when:1067122800, index:0xc, isstd:false, isutc:false},
                    {when:1080428400, index:0xb, isstd:false, isutc:false},
                    {when:1099177200, index:0xc, isstd:false, isutc:false},
                    {when:1111878000, index:0xb, isstd:false, isutc:false},
                    {when:1130626800, index:0xc, isstd:false, isutc:false},
                    {when:1143327600, index:0xb, isstd:false, isutc:false},
                    {when:1162076400, index:0xc, isstd:false, isutc:false},
                    {when:1174777200, index:0xb, isstd:false, isutc:false},
                    {when:1193526000, index:0xc, isstd:false, isutc:false},
                    {when:1206831600, index:0xb, isstd:false, isutc:false},
                    {when:1224975600, index:0xc, isstd:false, isutc:false},
                    {when:1238281200, index:0xb, isstd:false, isutc:false},
                    {when:1256425200, index:0xc, isstd:false, isutc:false},
                    {when:1269730800, index:0xb, isstd:false, isutc:false},
                    {when:1288479600, index:0xc, isstd:false, isutc:false},
                    {when:1301180400, index:0xd, isstd:false, isutc:false},
                    {when:1414274400, index:0xc, isstd:false, isutc:false},
                },
                cacheStart: 1414274400,
                cacheEnd:   9223372036854775807,
                cacheZone:  &time.zone{(CYCLIC REFERENCE)},
            },
        },
        // ...

@pwaller
Copy link
Author

pwaller commented Feb 15, 2017

Hitting this again today in an awkward way, a few years later :)

Using text marshalling sounds or GoStringer interface sounds like a nice idea. Is there something preventing #17 or #19 from progressing?

/cc @kr @cee-dub @otaku

@tomqwpl
Copy link

tomqwpl commented May 10, 2021

Also hitting this. For my purposes it largely renders pretty unworkable because the output is so large whenever you have a time value in a struct. You have to wade through the reams of output for the time values to see the wood between the trees. This is a shame, because otherwise pretty does exactly what I'd want for debugging and so on.

@benjaminjkraft
Copy link

It seems to me the much better solution would be to special-case time.Time and return, say, time.Date(2021, time.June, 11, 12, 34, 56, 0, time.UTC). That has the benefit of being both human-readable and valid Go code (the current implementation is definitely not human-readable; #19 would be human-readable but nowhere close to valid Go code, whereas otherwise this library mostly produces valid Go code or the closest it reasonably can (e.g. it may set private fields or have &<string literal>).

If I have time next week I may write up a PR for that.

@kr
Copy link
Owner

kr commented Jun 11, 2021

Go 1.17 will add a GoString method on Time values.

https://tip.golang.org/doc/go1.17#time

That might be sufficient for us to close this issue.

@garethlewin
Copy link

It doesn't appear to have helped, at least if a time.Time is a struct member.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants