From b446cb097661ff8a4132ef242c3458d6770b3f14 Mon Sep 17 00:00:00 2001 From: Yuge Zhang Date: Mon, 12 Aug 2019 16:24:21 +0800 Subject: [PATCH] Fix the issue that date nanoseconds does not work under macOS (#1434) Fix the issue that date nanoseconds does not work under macOS --- .../training_service/local/localTrainingService.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/nni_manager/training_service/local/localTrainingService.ts b/src/nni_manager/training_service/local/localTrainingService.ts index 6fcd913a70..88e006a3f9 100644 --- a/src/nni_manager/training_service/local/localTrainingService.ts +++ b/src/nni_manager/training_service/local/localTrainingService.ts @@ -521,9 +521,14 @@ class LocalTrainingService implements TrainingService { `$NOW_DATE = "$NOW_DATE" + (Get-Date -Format fff).ToString()`, `Write $LASTEXITCODE " " $NOW_DATE | Out-File ${path.join(workingDirectory, '.nni', 'state')} -NoNewline -encoding utf8`); } else { - script.push( - `eval ${localTrialConfig.command} 2>${path.join(workingDirectory, 'stderr')}`, - `echo $? \`date +%s%3N\` >${path.join(workingDirectory, '.nni', 'state')}`); + script.push(`eval ${localTrialConfig.command} 2>${path.join(workingDirectory, 'stderr')}`); + if (process.platform === 'darwin') { + // https://superuser.com/questions/599072/how-to-get-bash-execution-time-in-milliseconds-under-mac-os-x + // Considering the worst case, write 999 to avoid negative duration + script.push(`echo $? \`date +%s999\` >${path.join(workingDirectory, '.nni', 'state')}`); + } else { + script.push(`echo $? \`date +%s%3N\` >${path.join(workingDirectory, '.nni', 'state')}`); + } } return script;