URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3699
[ Назад ]

Исходное сообщение
"Преобразование  времени и даты"

Отправлено Незнайка , 08-Дек-04 12:43 
Как преобразовать строку вида 2004-5-8 8:00:00 к виду 2004-05-08 12:00:00, т.е. что-бы месяц, день и час были двухразрядными?

Содержание

Сообщения в этом обсуждении
"Преобразование  времени и даты"
Отправлено Vladislav Lazarenko , 08-Дек-04 13:38 
>Как преобразовать строку вида 2004-5-8 8:00:00 к виду 2004-05-08 12:00:00, т.е. что-бы
>месяц, день и час были двухразрядными?

Зависит от того, как ты получаешь эту одноразрядную запись.
Как самое простое решение - указать формат при формировании строки:

YYYY-mm-dd ... и т.д.

-- SnaiL


"Преобразование  времени и даты"
Отправлено Незнайка , 08-Дек-04 15:11 
>>Как преобразовать строку вида 2004-5-8 8:00:00 к виду 2004-05-08 12:00:00, т.е. что-бы
>>месяц, день и час были двухразрядными?
>
>Зависит от того, как ты получаешь эту одноразрядную запись.

Получаю ее вот так:

$tm = localtime;
($DAY, $MONTH, $YEAR, $HOUR, $MIN) = ($tm->mday, $tm->mon, $tm->year, $tm->hour, $tm->min);

>Как самое простое решение - указать формат при формировании строки:
>
>YYYY-mm-dd ... и т.д.

А вот тут можно по подробнее



"Преобразование  времени и даты"
Отправлено Vladislav Lazarenko , 08-Дек-04 15:15 
Не знаю, что это у Вас за язык такой)
В Си, например, есть функция strftime, которой передается формат даты, которую хотим получить. Может быть и у Вас есть что-то такое.

"Преобразование  времени и даты"
Отправлено Незнайка , 08-Дек-04 15:45 
>Не знаю, что это у Вас за язык такой)
>В Си, например, есть функция strftime, которой передается формат даты, которую хотим
>получить. Может быть и у Вас есть что-то такое.

Пишу я на perl


"Преобразование  времени и даты"
Отправлено Vladislav Lazarenko , 08-Дек-04 15:52 
>>Не знаю, что это у Вас за язык такой)
>>В Си, например, есть функция strftime, которой передается формат даты, которую хотим
>>получить. Может быть и у Вас есть что-то такое.
>
>Пишу я на perl

Если на перл, то может быть что-то типа:

my $time_stamp = &format_time;
print "$time_stamp\n";

sub format_time {
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdaylightsav) = localtime;
    $year = substr $year,2,2;    # 2 digit year
    sprintf "%02i%02i%02i %02i%02i%02i", $year,$mon,$mday,$hour,$min,$sec;
}

-- По мотивам Google...


"Преобразование  времени и даты"
Отправлено sly , 08-Дек-04 15:39 
>>Как самое простое решение - указать формат при формировании строки:
>>
>>YYYY-mm-dd ... и т.д.
>
>А вот тут можно по подробнее

как вариант:
my $date = `date +"%Y-%m-%d %H:%M:%S"`;


"Преобразование  времени и даты"
Отправлено Незнайка , 08-Дек-04 15:48 
>>>Как самое простое решение - указать формат при формировании строки:
>>>
>>>YYYY-mm-dd ... и т.д.
>>
>>А вот тут можно по подробнее
>
>как вариант:
>my $date = `date +"%Y-%m-%d %H:%M:%S"`;

А вот за это спасибо, пока устраивает, но хотелось бы средставами perl


"Преобразование  времени и даты"
Отправлено sly , 08-Дек-04 15:58 
>>как вариант:
>>my $date = `date +"%Y-%m-%d %H:%M:%S"`;
>
>А вот за это спасибо, пока устраивает, но хотелось бы средставами perl
>

my ($sec, $min, $hours, $day, $month, $year) = localtime();
printf ("%02d:%02d:%02d %02d/%02d/%04d\n",$hours,$min,$sec,$day,$month+1,$year+1900);


"Преобразование  времени и даты"
Отправлено sly , 08-Дек-04 16:01 
>my ($sec, $min, $hours, $day, $month, $year) = localtime();
>printf ("%02d:%02d:%02d %02d/%02d/%04d\n",$hours,$min,$sec,$day,$month+1,$year+1900);

или соответственно для сохранения в переменную
my ($sec, $min, $hours, $day, $month, $year) = localtime();
my $date = sprintf ("%02d:%02d:%02d %02d/%02d/%04d\n",$hours,$min,$sec,$day,$month+1,$year+1900);


"Преобразование  времени и даты"
Отправлено wersa , 09-Дек-04 12:40 
в перле есть

use POSIX qw(strftime);

       $now_string = strftime "%H:%M:%S %e.%m.%y", localtime;

вообще man strftime и там "%H:%M:%S %e.%m.%y" подробнее описанно можно делать с этим все что угодо опций очень много хотя я паралельно использую

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
и
use POSIX qw(strftime);
       $now_string = strftime "%H:%M:%S %e.%m.%y", localtime;