У меня есть строка даты в формате 2012-12-20T01: 16: 02.05 и я хочу, чтобы преобразовать в формат 2011-12-20-01.16.02.050000Как сохранить миллисекунду информации при использовании mktime в awk?
В настоящее время я делаю это следующим образом
format = "%F-%H.%M.%S.%N"
split(stringinput,input,"T");
split(input[1],date,"-")
split(input[2],time,":")
return strftime(format,mktime(date[1] " " date[2] " " date[3] " " time[1] " " time[2] " " time[3] " " time[4]));
Но я теряю информацию о микросекундах или информацию в миллисекундах. Как я могу это получить. Он возвращается 2011-12-20-01.16.02.% N
Также любые предложения, чтобы сделать синтаксический анализ более общим. В настоящее время он поддерживает только один формат.
Спасибо.
Привет, Стив, Спасибо, что работает. Но сможете ли вы предложить мне, как я могу сделать его общим для обработки ввода в любом формате. –
@PriyaRanjan: В формате _any_? Это будет сложно. Вероятно, вы могли бы проверить пару различных регулярных выражений, используя цикл. Затем 'break' цикл, если' mktime() 'не возвращает' -1'. Если вы перечислите несколько разных форматов datetime, возможно, я смогу показать вам, как именно. – Steve
Я просмотрел список, и кажется, что форматы, которые у меня есть, имеют вышеуказанный формат с добавлением информации о часовом поясе. –