Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
kornienko_ru Сообщений: 415 Откуда: Владивосток Дата регистрации: 06.09.2015 |
Хотелось найти готовое отлаженное решение. Но пока не увидел. Может из стариков, кто сталкивался с получением такой даты. Спецификацию нашел здесь www.rfc-editor.org. Если такого еще не было, то придётся делать.... Выглядеть должно так:
![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
PaulWist Сообщений: 14762 Дата регистрации: 01.04.2004 |
Получить UTC время из локального
PS Эх piva, piva какая светлая голова. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) Исправлено 2 раз(а). Последнее : PaulWist, 18.04.24 15:49 ![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
akvvohinc Сообщений: 4587 Откуда: Москва Дата регистрации: 11.11.2008 |
Это то, что на выходе. А что на входе? Я так понимаю, что проблема не в том, чтобы на основе некоторого значения даты/времени получить строку в таком формате - это несложно. Значит, проблема может быть только в том, чтобы привести это значение к нулевой зоне (GMT). А поэтому для преобразования недостаточно знать некоторое значение даты/времени. Надо знать ещё и для какой временной зоны это значение задано. Если временная зона известна, то получить дату/время для UTC+0 (GMT) проблем, я полагаю, нет. А если должна использоваться зона текущего компа, то она определяется с помощью DECLARE INTEGER GetTimeZoneInformation IN kernel32 STRING @TZInfo Сейчас, при наличии функции CTOBIN(), то же самое можно реализовать попроще. Исправлено 1 раз(а). Последнее : akvvohinc, 18.04.24 18:25 ![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
akvvohinc Сообщений: 4587 Откуда: Москва Дата регистрации: 11.11.2008 |
Функция, возвращающая количество секунд, на которое текущее время компа опережает время по UTC+0 (GMT).
Для Москвы возвращает 10800 в любой день, если в настройках компа не стоит галка "Автоматический переход на летнее время". Если из текущих даты/времени компа вычесть это количество секунд, то получим время для UTC+0 (GMT)
Исправлено 1 раз(а). Последнее : akvvohinc, 18.04.24 18:53 ![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
kornienko_ru Сообщений: 415 Откуда: Владивосток Дата регистрации: 06.09.2015 |
Спасибо конечно, но задача немного другая. Я имел в виду только формат, а не переход с летнего или зимнего времени. У нас его слава богу нет, и я думаю, что больше не будет. А если будет, то я обычно закладывал простое условие без всяких declare. Например, летом отнимал одно количество часов, зимой другое. Кстати сейчас для Владивостока применял бы примерно такую конструкцию:
![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
akvvohinc Сообщений: 4587 Откуда: Москва Дата регистрации: 11.11.2008 |
Может, именно такое никто и не делал, но задача-то элементарная, даже если решать её в лоб: 1) CDOW() возвращает название дня недели (берем первые 3 символа) 2) DAY() возвращает день месяца 3) CMONTH(), возвращает название месяца (берем первые 3 символа) 4) YEAR() возвращает год 5) TTOC() или TIME() позволяет получить время Ну, в общем как-то так:
А теперь желающие могут заняться оптимизацией (ускорением). Исправлено 3 раз(а). Последнее : akvvohinc, 19.04.24 03:12 ![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
kornienko_ru Сообщений: 415 Откуда: Владивосток Дата регистрации: 06.09.2015 |
Супер. И по моему это наиболее оптимальный вариант.
Вам плюсик. Как раз смотрел в помощи эти функции cdow(now) и cmont(now), проверял правильно ли они выводят сокращения дня недели и месяца, а вы уже написали.... Проверил. Всё работает отлично. Вот такая функция получилась
Исправлено 3 раз(а). Последнее : kornienko_ru, 19.04.24 05:10 ![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
akvvohinc Сообщений: 4587 Откуда: Москва Дата регистрации: 11.11.2008 |
Возможно. Но можно рассмотреть и более экзотические способы, например, такой: Почти все требуемые компоненты (кроме дня недели) выводятся при настройке SET DATE LONG одной функцией ? TTOC(DATETIME()) Далее остается только "поработать" над строкой вывода. Правда, название месяца выводится в соответствии с локалью системы, то есть по-русски при русской локали. Да и в плане скорости этот способ, конечно, будет прилично уступать. ![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
Владимир Максимов Сообщений: 14157 Откуда: Москва Дата регистрации: 02.09.2000 |
Есть небольшое замечание
Если используют локализованные Run-Time библиотеки, например, для русского языка VFP9rrus.dll, то функции, возвращающие текст, будут возвращать этот текст именно на русском языке. Т.е. это в среде разработки CDOW() вернет "Wednesday", а в готовом EXE эта же функция вернет "Среда". Название дня недели, но на русском Поэтому, такие "текстовые" функции лучше не использовать, а применять собственные функции, где по номеру дня недели вернуть нужный текст на нужном языке Исправлено 1 раз(а). Последнее : Владимир Максимов, 19.04.24 10:07 ![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
akvvohinc Сообщений: 4587 Откуда: Москва Дата регистрации: 11.11.2008 |
Понятно. Но поскольку мы начали писать приложения ещё до "русификации" Фокса, то и позже уже не имело большого смысла пользоваться этими библиотеками - все нужные функции уже были написаны и менять кучу исходников желающих не нашлось. )) Но ТС, скорее всего, придется дополнительно "переводить" с русского. Исправлено 1 раз(а). Последнее : akvvohinc, 19.04.24 15:12 ![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
sphinx Сообщений: 31986 Откуда: Екатеринбург Дата регистрации: 22.11.2006 |
Все пропустил. Но Сергею однозначно плюс и
![]() ------------------ "Veni, vidi, vici!"(с) ![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
of63 Сообщений: 26053 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
|
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
of63 Сообщений: 26053 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Блин, в спойлер код сложите пож., если можно... упустил из под контроля (забыл, тупанул, зевнул), нескромно получилось
![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
alex; Сообщений: 3500 Откуда: Москва Дата регистрации: 23.11.2004 |
так есть же кнопка "редактировать" сообщение ![]() Исправлено 1 раз(а). Последнее : alex;, 19.04.24 22:01 ![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
of63 Сообщений: 26053 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
[attachment 36796 .jpg]а у меня нет чё-то!
Тебе продставить скрин? ... поверь, я много кнопок знаю на экране и на клаве Исправлено 2 раз(а). Последнее : of63, 19.04.24 22:15 ![]() |
Re: Нужна функция получения даты в формате UTC/GMT, как на javascript. Т.е. вида Wed, 21 Oct 2015 07:28:00 GMT | |
---|---|
ssa Автор Сообщений: 13086 Откуда: Москва Дата регистрации: 23.03.2005 |
Не ту ты функцию, Паша, нашел.
Надо вот ту, что ниже. Тоже, кстати, авторство Пивы, я только слегка ![]() ![]()
------------------ Лень - это неосознанная мудрость. ![]() |
© 2000-2025 Fox Club  |