Работа с обычными датами (те которые мы повседневно используем) в программном коде проблематична. Примитивная задача прибавить к текущему дню 7 дней — уже становится проблематично. А если эти дни на стыке недели, или на стыке нового года или того более 28 февраля високосного года. Да, теперь можно порадовать очень хорошей мысли выражать текущую дату в виде количества секунда начиная от 01.01.1970 00:00:00.

Для простоты решений приведу следующую (популярную) таблицу:

Обычная дата(Human readable time) Секунды
1 минута 60 секунд
1 час 3600 секунд
1 день 86400 секунд
1 неделя 604800 секунд
1 месяц (30.44 дней) 2629743 секунд
1 год (365.24 дней) 31556926 секунд

Как получить 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 время в…

Perl
mktime(<em>часы</em>, <em>минуты</em>, <em>секунды</em>, <em>месяц</em>, <em>день</em>, <em>год</em>)
PHP
mktime(<em>часы</em>, <em>минуты</em>, <em>секунды</em>, <em>месяц</em>, <em>день</em>, <em>год</em>)
Ruby
Time.local(<em>год</em>, <em>месяц</em>, <em>день</em>, <em>часы</em>, <em>минуты</em>, <em>секунды</em>, <em>usec</em> )

(или

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", <em>поле даты</em>)
MySQL
SELECT unix_timestamp(<em>время</em>)

Формат времени: 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', <em>поле с датой</em>)
Unix/Linux
date +%s -d"Jan 1, 1980 00:00:01"

 

Конвертирование Unix времеми в понятную дату(human readable date)…

Perl
localtime($unixtime)
PHP
date(<em>Формат</em>, <em>unix время</em>);
Ruby
Time.at(<em>unix время</em>)
Python
import time

сначала, потом

time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime(<em>unix время</em>))

Замените time.localtime на time.gmtime для GMT даты.

Java
String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date (<em>unix время</em>*1000));
VBScript/ASP
DateAdd("s", <em>unix время</em>, "01/01/1970 00:00:00")
PostgreSQL
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + <em>unix время</em> * INTERVAL '1 second';
MySQL
from_unixtime(<em>unix время</em>, <em>не обязательно, выходной формат</em>)

Стандартный формат выхода YYY-MM-DD HH:MM:SS

SQL Server
DATEADD(s, <em>unix время</em>, '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(<em>unix время</em>))"

(Если установлен Perl) Замените ‘localtime’ на ‘gmtime’ для GMT/UTC зоны времени.

Tagged with:  

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>