Funzione time stamp [RISOLTO]

di il
19 risposte

Funzione time stamp [RISOLTO]

Buonasera a tutti.

sto creando una piccola applicazione che richiami i dati di un treno a piacimento nella giornata odierna (non si può cercare nei giorni precedenti o successivi).

mi è necessario avere il timestamp della data odierna.

per oggi 9 ottobre il time stamp è 1696802400000 che corrisponde a :

FormatMilliseconds (1/1,000 second)
GMTSun Oct 08 2023 22:00:00 GMT+0000
Your Time ZoneMon Oct 09 2023 00:00:00 GMT+0200 (Ora legale dell’Europa centrale)

dov'è il problema ? che questo funziona fino al cambio dell'ora solare/legale e viceversa.come posso fare per farlo funzionare anche quanto GMT diventerà +1 al cambio ora solare/legale ? 

io ho scritto questo codice : 

Dim data As Date = Today.ToUniversalTime

                Dim data1 As String = data.ToString("g")
                Dim timesceltautente As Double = GetUnixTimestampFromVBdatetime(data1)

che richiama questa funzione : 

	Public Function GetUnixTimestampFromVBdatetime(ByVal d As DateTime) As Double
        Dim ts As TimeSpan = (d - New DateTime(1970, 1, 1, 0, 0, 0, 0))
        Return ts.TotalMilliseconds

in un altra parte del programma dovrò confrontare l'orario di fermata (in time stamp) con l'ora corrente quindi avrò lo stesso problema al contrario.

grazie per qualsiasi aiuto

19 Risposte

  • Re: Funzione time stamp [RISOLTO]

    09/10/2023 - eurostar_italia ha scritto:


    sto creando una piccola applicazione che richiami i dati di un treno a piacimento nella giornata odierna

    l'ora legale/solare ricade sempre dopo la mezzanotte del giorno in cui effetttui il timestamp.

    09/10/2023 - eurostar_italia ha scritto:


    dov'è il problema ? che questo funziona fino al cambio dell'ora solare/legale e viceversa.come posso fare per farlo funzionare anche quanto GMT diventerà +1 al cambio ora solare/legale ? 

    qui compro una vocale… non capisco il problema.

    CHE DATI TI SERVONO? DA DOVE LI PRENDI? COME LI HAI MEMORIZZAI?

  • Re: Funzione time stamp [RISOLTO]

    A me serve identificare il giorno corrente (ovvero ogni giorno di utilizzo del programma) in time stamp alla mezzanotte.

    quindi il 9 ottobre alla mezzanotte italiana era 1696802400000,il 10 ottobre alla mezzanotte è 1696888800000

    dato per il timestamp il calcolo è basato su gmt  quando tento di convertire la data odierna in timestamp,la mia funzione converte nella mezzanotte italiana,ma non è la stessa di gmt quindi non so come fare per “proteggermi” dal cambio ora

  • Re: Funzione time stamp [RISOLTO]

    Ma perchè proprio quel tipo di dato?

    Non ti basta la data completa di orario?

    Non si capisce

  • Re: Funzione time stamp [RISOLTO]

    Perche il sito cui accedo vuole come

    parametro il numero del treno/timestamp 

  • Re: Funzione time stamp [RISOLTO]

    Ok e quIndi il problema non esiste. Dato che il tutto è valido per quel giorno, calcola il timestamp e lo fornisci.

    Non capisco la difficoltà che hai sinceramente.

    Magari se fai un esempio pratico è meglio

  • Re: Funzione time stamp [RISOLTO]

    Ciao,

    prova ad andare su timestampgenerator.com

    imposta la data che vuoi e l'ora (24.00.00)

    è interessante, ti fa vedere vari risultati del timestamp

    forse ti può aiutare nel calcolo

  • Re: Funzione time stamp [RISOLTO]

    Secondo me c'è qualche dubbio e/o difficoltà con la questione timestamp e timestamp with time zone.

    Il Timestamp non è soggetto ai fusi orari in quanto si riferisce all'ora UTC pura.

    Forse vuole calcolare il timestamp basandolo sull'ora UTC + Offset dipendente da ora legale.

    Aspettiamo però informazioni in merito.

  • Re: Funzione time stamp [RISOLTO]

    Allora il sistema per accedere all'informazione chiede il time stamp odierno in Italia.

    Se trovo un esempio già fatto per esempio oggi 1696888800000.

    quindi come dice giustamente Toki (e che io non avevo detto nei precedenti post) ho bisogno del timestamp  UTC+offset perche la richiesta va sul sistema italiano

  • Re: Funzione time stamp [RISOLTO]

    Continuo a non capire.

    Perché utilizzi 

    Today.ToUniversalTime

    e non

    Today

    per il calcolo?

  • Re: Funzione time stamp [RISOLTO]

    Perchè Today.ToUniversalTime ottengo la data odierna alle 00:00 (provato ora ora)

    mentre con Today ottengo data odierna alle 22:00 e quindi la funzione restituisce un timestamp che non è quello di cui ho bisogno (1696896000000 invece che 1696888800000 ).

    in pratica il sito mi chiede un timestamp che corrisponde alla mezzanotte italiana,ma il timestamp viene calcolato su UTC.

    quindi devo garantirmi di prendere la data odierna+ora (sempre alle 00:00) passarle alla funzione di conversione e riottenere il timestamp giusto sia che abbia ora legale che solare.

    sicuramente mi sono arrovellato troppo e quindi come si direbbe a Roma “mi sono incartato da solo”.

    per quello vi chiedo dove sto sbagliando anche solo nella logica.

    Il prossimo passo è confrontare degli orari (uno ottenuto tramite timestamp dal sito) e uno impostato da me tramite l'ora di sistema ,quindi per quello devo aver ben chiaro come procedere.

    grazie

  • Re: Funzione time stamp [RISOLTO]

    Se ti serve la mezzanotte usa

    Dim oggi As DateTime = Today
    oggi = New DateTime(oggi.Year, oggi.Month, oggi.Day, 0, 0, 0)
           
  • Re: Funzione time stamp [RISOLTO]

    11/10/2023 - oregon ha scritto:


    Se ti serve la mezzanotte usa

    Dim oggi As DateTime = Today
    oggi = New DateTime(oggi.Year, oggi.Month, oggi.Day, 0, 0, 0)
           

    se lo uso ottengo : 1696982400000

    GMT: Wednesday 11 October 2023 00:00:00
    Your time zone: mercoledì 11 ottobre 2023 02:00:00 GMT+02:00 DST

    invece per oggi 11 ottobre dev'essere 1696975200000

    GMT: Tuesday 10 October 2023 22:00:00
    Your time zone: mercoledì 11 ottobre 2023 00:00:00 GMT+02:00 DST

  • Re: Funzione time stamp [RISOLTO]

    11/10/2023 - eurostar_italia ha scritto:


    se lo uso ottengo : 1696982400000

    Che è il valore + offset che cercavi (valore GMT+7200000 equivalenti a 2 ore in ms)  

    11/10/2023 - eurostar_italia ha scritto:


    1696975200000

    Allora vuoi il GMT… deciditi

  • Re: Funzione time stamp [RISOLTO]

    Io ottengo questa schermata : o cosi 

    quindi penso sia il GMT a questo punto.

Devi accedere o registrarti per scrivere nel forum
19 risposte