Каковы различия между этими двумя строками? - PullRequest
0 голосов
/ 11 апреля 2019

Вставляя событие в google-calendar-api с помощью Golang, я могу заставить свое событие работать, когда я жестко закодировал дату DateTime: «2019-04-11T14: 00: 00»,

но не тогда, когда я генерировал его из переменных 'DateTime: evtEndDate + "T" + evtEndTime,'

Я не вижу никакой разницы, но API делает

Здесь я печатаю созданную переменную и ее тип, затем жестко закодированную переменную и ее тип. Они выглядят одинаково

2019-04-11T06:00:00     string
2019-04-11T06:00:00     string
2019-04-11T14:00:00     string
2019-04-11T14:00:00     string
2019/04/11 12:48:17 Unable to create event. googleapi: Error 400: Invalid value for: Invalid format: "2019-04-11T14:00:00", invalid
exit status 1

Используемый код перехода:

event := &calendar.Event{
    Summary:     data.schShift + " - Test Event",
    Location:    "Canada",
    Description: "Test event added by Go utility",
    Start: &calendar.EventDateTime{

        // This doesn't work
        DateTime: evtStartDate + "T" + evtStartTime,

        // This works (when unREM'd
        // DateTime: "2019-04-11T06:00:00",
        TimeZone: "America/Toronto",
    },
    End: &calendar.EventDateTime{

        // This doesn't work
        DateTime: evtEndDate + "T" + evtEndTime,

        // This works (when unREM'd
        // DateTime: "2019-04-11T14:00:00",
        TimeZone: "America/Toronto",
    },
}
evtStartDate = evtStartDate + "T" + evtStartTime
fmt.Printf("%v\t%T\n", evtStartDate, evtStartDate)
fmt.Printf("%v\t%T\n", event.Start.DateTime, event.Start.DateTime)
evtEndDate = evtEndDate + "T" + evtEndTime
fmt.Printf("%v\t%T\n", evtEndDate, evtEndDate)
fmt.Printf("%v\t%T\n", event.End.DateTime, event.End.DateTime)

Я ожидал, что переменная будет принята, так как она кажется того же типа

1 Ответ

0 голосов
/ 11 апреля 2019

Я переместил уравнение из установки stuct, и оно сработало. Имеет смысл, хотя я был уверен, что именно так я и начал.

    evtStartDate = evtStartDate + "T" + evtStartTime
    evtEndDate = evtEndDate + "T" + evtEndTime


    event := &calendar.Event{
        Summary:     data.schShift + " - Test Event",
        Location:    "Canada",
        Description: "Test event added by Go utility",
        Start: &calendar.EventDateTime{
            DateTime: evtStartDate,
            TimeZone: "America/Toronto",
        },
        End: &calendar.EventDateTime{
            DateTime: evtEndDate,
            TimeZone: "America/Toronto",
        },
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...