Значение даты в какой кодировке

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by DLEMANSION, 4 Mar 2016.

  1. DLEMANSION

    DLEMANSION Banned

    Joined:
    29 Dec 2010
    Messages:
    12
    Likes Received:
    1
    Reputations:
    0
    народ подскажите плз! в бд хранятся записи:
    762976800000 387914400000 (это даты) на выходе:

    762976800000 07.03.1994
    387914400000 18.04.1982

    чем шифруется?
     
  2. Waki

    Waki Member

    Joined:
    9 Oct 2015
    Messages:
    55
    Likes Received:
    31
    Reputations:
    10
    не шифруется, это unix timestamp
     
  3. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,937
    Likes Received:
    804
    Reputations:
    224
    762976800000 - 387914400000 = 375062400000
    07/03/1994 00:00:00 - 18/04/1982 00:00:00 = 375062400 секунд

    Точка отсчета
    18/04/1982 00:00:00 - 3879144 секунд = 04/03/1982 02:27:36

    Формат - кол-во секунд с: 04/03/1982 02:27:36
     
    DLEMANSION likes this.
  4. DLEMANSION

    DLEMANSION Banned

    Joined:
    29 Dec 2010
    Messages:
    12
    Likes Received:
    1
    Reputations:
    0

    Спасибо! то есть чтобы из 387914400000 получить нормальную дату! нужно от текуших секунд на сей день отнять 3879144 секунд?
     
  5. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,937
    Likes Received:
    804
    Reputations:
    224
    Прибавляешь к 04/03/1982 02:27:36 секунды 387914400000 и получаешь дату
     
  6. DLEMANSION

    DLEMANSION Banned

    Joined:
    29 Dec 2010
    Messages:
    12
    Likes Received:
    1
    Reputations:
    0
    да вот проблема в случае когда сама дата неизвесна как её определить)
    допустим есть число 590349600000 как в читабельный вид привести
     
  7. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,937
    Likes Received:
    804
    Reputations:
    224
    Я же объяснил алгоритм.
    Code:
    #include <time.h>
    #include <stdio.h>
    
    int main()
    {
        struct tm time;
        const char * base_time = "04/03/1982 02:27:36";
       
        strptime(base_time, "%d/%m/%Y %H:%M:%S", &time);
       
        /* 387914400000 18.04.1982 */
        time.tm_sec += 3879144;
       
        mktime(&time);
        printf( "%s\n", asctime( &time));
       
        return 0;
    }
    
     
    GRRRL Power and DLEMANSION like this.
  8. DLEMANSION

    DLEMANSION Banned

    Joined:
    29 Dec 2010
    Messages:
    12
    Likes Received:
    1
    Reputations:
    0
    Вау! всё понял большое спасибо! огромное =)
     
Loading...