1 марта 2010 г.

strftime

Не знаю, как правильно расшифровывается это слово, но это мне оказалось нужным, поэтому пусть лежит здесь.
Каким-то загадочным образом эти сочетания символов, введённые в настройках, дают разные форматы текущих даты и времени :) Например, я столкнулась с этим при настройке панели tint2 и апплета часов для панели xfce4.
Сначала напишу в упрощённом виде и только самые нужные обозначения в основном с примерами.

Дата

  • год: %Y - 2010; %y - 10
  • месяц: %B - Февраль; %b и %h - Фев; %m - 02
  • день недели: %A - Воскресенье; %a - Вск
  • день месяца: %d - 01-31; %e - 1-31
  • дата: %D - 02/28/10; %F - 2010-02-28; %x - 01.03.2010

Время

  • час: %H - 00-23; %I - 01-12; %k - 0-23; %l - 0-12
  • минута: %M - 00-59
  • секунда: %S - 00-60
  • время: %R - 02:26; %r - 02:27:27; %T и %X - 02:28:52

Дата и время

%c - Пнд 01 Мар 2010 00:20:13

А теперь те же и ещё дополнительные значения в алфавитом порядке:

%A - полное название дня недели (Воскресенье)
%a - сокращённое название дня недели (Вск)
%B - полное название месяца (Февраль)
%b - сокращённое название месяца (Фев)
%C - столетие, то есть год, делённый на 100 и округлённый до целого (20)
%c - предпочитаемый формат даты и времени (Пнд 01 Мар 2010 00:20:13)
%D - то же, что и %m/%d/%y (02/28/10)
%d - день месяца от 01 до 31
%e - день месяца от 1 до 31, если это одна цифра, то перед ней добавляется пробел
%F - то же, что и %Y-%m-%d (2010-02-28)
%G - год полностью, но с учётом недели по стандарту ISO (см. %V)
%g - то же, что и %G, но год без столетия
%H - номер часа от 00 до 23
%h - то же, что и %b (сокращённое название месяца)
%I - номер часа от 01 до 12
%j - номер дня в году от 001 до 366
%k - номер часа от 0 до 23, если это одна цифра, то перед ней добавляется пробел
%l - номер часа от 0 до 12, если это одна цифра, то перед ней добавляется пробел
%M - минуты от 00 до 59
%m - номер месяца от 01 до 12
%n - перенос строки
%p - am или pm, то есть "до полудня" или "после полудня" (у меня ничего не написало)
%R - время в 24-часовом формате без секунд, то есть %H:%M (23:26)
%r - время в 12-часовом формате, то есть %I:%M:%S %p (11:27:27)
%S - секунды от 00 до 60
%T - текущее время, то есть %H:%M:%S (23:28:52)
%t - табуляция
%U - номер недели в году от 00 до 53, где первая неделя начинается с первого воскресенья в году
%u - номер дня недели от 1 до 7, где 1 соответствует понедельнику
%V - номер недели в году от 01 до 53 по стандарту ISO 8601:1988, где первой считается неделя, у которой большее количество дней (то есть как минимум 4) принадлежат текущему году
%v - то же, что %e-%b-%Y ( 1-Мар-2010) у меня не сработало
%W - номер недели в году от 00 до 53, где первая неделя начинается с первого понедельника в году
%w - номер дня недели, где 0 соответствует воскресенью
%X - предпочтительный формат времени (22:36:18)
%x - предпочтительный формат даты (01.03.2010)
%Y - год полностью (2010)
%y - год без столетия, то есть последние две цифры (10)
%Z - временная зона в виде смещения, аббревиатуры или полностью (у меня показывает KRAT или NOVST)
%z - временная зона в виде знака + или - и обозначением добавляющегося или отнимающегося времени от Гринвича (+0700)

Источник: www.manpagez.com/man/3/strftime/ (пару обозначений опустила, курсивом приведены примеры именно так, как это выглядит у меня, но на компьютере с французским, например, языком интерфейса, будет совсем по-другому)

2 комментария: