Я правильно понял, что вы выводите время по гринвичу + сдвиг?
Вроде как надо выводить локальное время + сдвиг...
Ну т.е. первично "местное" время.
Спасибо, Вячеслав! То-то меня смущал в примере минус в сдвиге:
2015-11-21T12:00:00-05:00
Т.е. сдвиг у вас в Екатеринбурге будет тоже -05:00?
И сдвигать на предыдущие сутки не придется, как того хотел vk65
А почему именно 1 ? а не 2 или 3 ?
Фальсификацией занимаемся или не умеем правильно перейти на предыдущие сутки?
Вот же-ж знал, что какой-нить пытливый ум прицепится
Да, потому, что, как выше я сказал, эта "ловля блох" ни о чем...
Все равно это будет фальсификацией, т.к. никого не должно волновать время создания файла в пользовательской программе - это и есть фальсификация... Наверное играет какую-то роль время передачи файла. Это как, если вовремя заполнить годовую декларацию (с проставленной датой заполнения), а сдать ее летом.
А за подсказку с [@R 9999-99-99] спасибо, не догадался бы, что с DTOS() такое сработает! Проверил, получается, что:
transform(DTOS(DATE()), [@R 9999-99-99]) и
transform(VAL(DTOS(DATE())), [@R 9999-99-99])
выводят одно и тоже
Я думаю, у них не изобретение проблем, а просто взяли стандартный тип DateTime, а в нём есть этот самый сдвиг, который вроде бы и не обязательная часть, но вот оставили, чтобы было. По сути, время отчёта будет зафиксировано по факту передачи по каналам связи. Или я что-то недопонимаю.
Время составления в любом случае не будет равным времени передачи. И смысл указания времени в этом файле спорный. Но, раз уж сказано ставить - мы не жадные, поставим.
Я думаю, у них не изобретение проблем, а просто взяли стандартный тип DateTime, а в нём есть этот самый сдвиг, который вроде бы и не обязательная часть, но вот оставили, чтобы было. По сути, время отчёта будет зафиксировано по факту передачи по каналам связи. Или я что-то недопонимаю.
nSdvig=5 && Сдвиг по Гринвичу в Челябинске (можно передать параметром в функцию)
Как бы этот сдвиг зацепить в VFP ?
Хотя выкопали и такую ф-ю API_GetDateTimeUTC()
Это вопрос часового пояса, тут и операционка может наврать. У Вас приложение распространено по разным часовым поясам? Тогда пихайте "сдвиг" в настройку И тоже нет гарантии (я вот эпизодически в своем компе поправляю время). Другое дело - а кому оно надо? А если программа наврет с DateTime на пару часов, наверное какой-нить пенсионер незаконно обогатится индексацией?
На пустом месте изобретаем проблемы...
Помогите пожалуйста. Не могу понять структуру АФ:ДатаВремя.
Где она описана?
Есть ли такая функция в VisualFoxpro?
У меня пока так (сойдет для любого Foxpro): cCurDate=DTOS(DATE())
cCurDateCur=LEFT(cCurDate,4)+[-]+SUBSTR(cCurDate,5,2)+[-]+RIGHT(cCurDate,2)
cTime=TIME()
nSdvig=5 && Сдвиг по Гринвичу в Челябинске (можно передать параметром в функцию)
cSdvig=TRANS(nSdvig,[@L 99])+[:00]
nTimeH=VAL(LEFT(cTime,2))-nSdvig
IF nTimeH<0
nTimeH=1
ENDIF
cTimeH=TRANS(nTimeH,[@L 99])
cTimeGr=cTimeH+SUBSTR(cTime,3,6) && По Гринвичу
cDateTime=cCurDateCur+[T]+cTimeGr+[+]+cSdvig
RETURN(cDateTime) && это, если объявить функцию
Удачи!
Прокомментировать: