Что такое Unix время или Unix эпоха (Unix epoch или Unix time или POSIX time или Unix timestamp) ?UNIX-время или POSIX-время (англ. Unix time) - способ кодирования времени, принятый в UNIX и других POSIX-совместимых операционных системах. Моментом начала отсчёта считается полночь (по UTC) с 31 декабря 1969 года на 1 января 1970, время с этого момента называют "эрой UNIX" (англ. Unix Epoch). Время UNIX согласуется с UTC, в частности, при объявлении високосных секунд UTC соответствующие номера секунд повторяются. Способ хранения времени в виде количества секунд очень удобно использовать при сравнении дат (с точностью до секунды), а также для хранения дат: при необходимости их можно преобразовать в любой удобочитаемый формат. Дата и время в этом формате также занимают очень мало места (4 или 8 байтов, в зависимости от размера машинного слова), поэтому его разумно использовать для хранения больших объёмов дат. Недостатки в производительности могут проявиться при очень частом обращении к элементам даты, вроде номера месяца и т. п. Но в большинстве случаев эффективнее хранить время в виде одной величины, а не набора полей. | Обычная дата(Human readable time) | Секунды | | 1 минута | 60 секунд | | 1 час | 3600 секунд | | 1 день | 86400 секунд | | 1 неделя | 604800 секунд | | 1 месяц (30.44 дней) | 2629743 секунд | | 1 год (365.24 дней) | 31556926 секунд |
Конвертивание эпохи Unix в человекопонятную дату(human readable date)
Unix дата начала и конуа года, месяца или дня
Перевод секунд в дни, часы и минуты
Как получить Unix время в...| Perl | time | | PHP | time() | | Ruby | Time.now (или Time.new). Чтобы вывести: Time.now.to_i | | Python | import time сначала, потом time.time() | | Java | long epoch = System.currentTimeMillis()/1000; | | Microsoft .NET C# | epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000; | | VBScript/ASP | DateDiff("s", "01/01/1970 00:00:00", Now()) | | Erlang | calendar:datetime_to_gregorian_seconds(calendar:now_to_universal_time( now()))-719528*24*3600. | | MySQL | SELECT unix_timestamp(now()) | | PostgreSQL | SELECT extract(epoch FROM now()); | | SQL Server | SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE()) | | JavaScript | Math.round(new Date().getTime()/1000.0) getTime() возвращает время в миллисекундах. | | Unix/Linux | date +%s | | Другие OS | Командная строка: perl -e "print time" (Если Perl установлен на вашей системе) |
Конвертирование даты в Unix время в...| PHP | mktime(часы, минуты, секунды, месяц, день, год) | | Ruby | Time.local(год, месяц, день, часы, минуты, секунды, usec ) (или Time.gm для GMT/UTC вывода). Чтобы вывести добавьте .to_i | | Python | import time сначала, потом int(time.mktime(time.strptime('2000-01-01 12:34:00', '%Y-%m-%d %H:%M:%S'))) | | Java | long epoch = new java.text.SimpleDateFormat ("dd/MM/yyyy HH:mm:ss").parse("01/01/1970 01:00:00"); | | VBScript/ASP | DateDiff("s", "01/01/1970 00:00:00", поле даты) | | MySQL | SELECT unix_timestamp(время) Формат времени: YYYY-MM-DD HH:MM:SS или YYMMDD или YYYYMMDD | | PostgreSQL | SELECT extract(epoch FROM date('2000-01-01 12:34')); С timestamp: SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40-08');C интервалом: SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours'); | | SQL Server | SELECT DATEDIFF(s, '1970-01-01 00:00:00', поле с датой) | | Unix/Linux | date +%s -d"Jan 1, 1980 00:00:01" |
Конвертирование Unix времеми в понятную дату(human readable date)...| PHP | date(Формат, unix время); | | Ruby | Time.at(unix время) | | Python | import time сначала, потом time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime(unix время)) Замените time.localtime на time.gmtime для GMT даты. | | Java | String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date (unix время*1000)); | | VBScript/ASP | DateAdd("s", unix время, "01/01/1970 00:00:00") | | PostgreSQL | SELECT TIMESTAMP WITH TIME ZONE 'epoch' + unix время * INTERVAL '1 second'; | | MySQL | from_unixtime(unix время, не обязательно, выходной формат) Стандартный формат выхода YYY-MM-DD HH:MM:SS | | SQL Server | DATEADD(s, unix время, '1970-01-01 00:00:00') | | Microsoft Excel | =(A1 / 86400) + 25569Результат будет в GMT зоне времени. Для других временных зон: =((A1 +/- разница аремени для зоны) / 86400) + 25569. | | Linux | date -d @1190000000 | | Другие OS | Командная строка: perl -e "print scalar(localtime(unix время))" (Если установлен Perl) Замените 'localtime' на 'gmtime' для GMT/UTC зоны времени. |
|