Уважаемые коллеги, такая проблема. Даже две.
Есть такой тестовый джоб:
X++:
static void KKu_Job_6901_TestFileTime(Args _args)
{
FileName fileName = 'C:\\testtime.txt';
;
if (WinAPI::fileExists( fileName ))
WinAPI::deleteFile( fileName );
WinAPI::createFile( fileName );
info( fileName );
info( 'Даты в формате ГГ ММ ДД' );
info( date2str(WinAPI::getFileCreatedDate ( fileName ) ,321,2,1,2,1,2) );
info( date2str(WinAPI::getFileModifiedDate( fileName ) ,321,2,1,2,1,2) );
info( date2str(WinAPI::getFileAccessedDate( fileName ) ,321,2,1,2,1,2) );
info( 'Время в формате ЧЧ ММ СС' );
info( time2str(WinAPI::getFileCreatedTime ( fileName ) ,3,1) );
info( time2str(WinAPI::getFileModifiedTime( fileName ) ,3,1) );
info( time2str(WinAPI::getFileAccessedTime( fileName ) ,3,1) );
info( 'Время "сейчас" в формате ЧЧ ММ СС' );
info( time2str( timenow(),3,1) );
}
Запускаю джоб 1-й раз. Получаю в инфологе:
Код:
C:\testtime.txt
Даты в формате ГГ ММ ДД
06 09 01
06 09 01
06 09 01
Время в формате ЧЧ ММ СС
09 21 06
09 21 06
09 21 06
Время "сейчас" в формате ЧЧ ММ СС
13 21 06
1-й вопрос: что это за 4 часа разницы, т.е. 13-9 ? Гринвич? UNIX-time? (любопытно, какая разница получится у других часовых поясов - отличная от 4?)
И как бороться? Просто тупо учитывать константой "4 часа" в коде или есть какая-нибудь специальная функция для такой коррекции?
Это еще не всё. По ходу возник второй вопрос. Напомню, что файл уже существует и я хочу его удалить и создать заново.
Запускаю джоб 2-й раз. Получаю в инфологе:
Код:
C:\testtime.txt
Даты в формате ГГ ММ ДД
Время в формате ЧЧ ММ СС
00 00 00
00 00 00
00 00 00
Время "сейчас" в формате ЧЧ ММ СС
13 22 23
Иду смотреть файл в Проводнике. Он существует, но как-то "странно"... На попытку удалить в Проводнике ругается, что занят другим процессом. Выхожу из Аксапты - файл запоздало исчезает.
2-й вопрос: Как этот файл освободить, не выходя из Аксапты?
Всем откликнувшимся заранее большое спасибо.