convertendo datetime em outro formato datetime

0

Eu tenho um arquivo de texto contendo muitas entradas de data no seguinte formato:

AAAA / MM / DD HH: MM: SS.SSS AM \ PM Como você converteria isso no seguinte formato?

AAAA-MM-DD HH: MM: SS.SSS (formato de 24 horas) Este arquivo contém muitas entradas de data, então deve mudar o formato de data de todas as entradas ...

Obrigado

    
por wdg 13.07.2017 / 00:46

2 respostas

0

link

O script acima processa a string DATETIME_INPUT e a processa na janela de saída com a alteração que você solicitou.

Para usar o script:

  1. abra o link acima.
  2. cole sua entrada de data e hora de origem nos dados existentes na constante DATETIME_INPUT.
  3. a página deve gerar automaticamente a saída na janela inferior. se não, clique no botão Executar
  4. copie / cole os resultados da janela inferior no arquivo de destino.

Observação: não sei como esse script será executado com grandes conjuntos de entrada. Por favor, especifique requisitos adicionais, se necessário (tamanho da entrada, com que freqüência você precisará executar este processo, precisa ser automatizado ou uma vez, etc.)

    
por 13.07.2017 / 06:38
0

Desde que a data e a hora no arquivo de origem estejam em uma posição fixa, como neste exemplo, no início:

> type datetime.txt
2016/12/12 05:16:41.898 PM Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed d
2017/01/16 11:05:05.897 AM a aliquyam erat, sed diam voluptua. At vero eos et accusam et 
2017/01/25 02:07:07.457 PM no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem 
2017/05/17 05:49:08.140 PM m nonumy eirmod tempor invidunt ut labore et dolore magna aliq
2017/06/10 04:40:56.529 AM sto duo dolores et ea rebum. Stet clita kasd gubergren, no sea

Um arquivo de lote pode analisar os elementos para variáveis e verificar AM / PM, e no caso de PM adicionar 12 à hora e colocar junto com os delimitadores alterados (remover AM / PM)

@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
For /F "usebackq Tokens=1-8* Delims=/:. " %%A in (
  "datetime.txt"
) do If /i "%%H" equ "AM" (
  Echo %%A-%%B-%%C %%D:%%E:%%F.%%G %%I
) Else If /i "%%H" equ "PM" (
  Set /A Hr=1%%D + 12
  Echo %%A-%%B-%%C !Hr:~-2!:%%E:%%F.%%G %%I
)  Else Echo no AM/PM found

Exemplo de saída:

> SU_1229322.cmd
2016-12-12 17:16:41.898 Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed d
2017-01-16 11:05:05.897 a aliquyam erat, sed diam voluptua. At vero eos et accusam et
2017-01-25 14:07:07.457 no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
2017-05-17 17:49:08.140 m nonumy eirmod tempor invidunt ut labore et dolore magna aliq
2017-06-10 04:40:56.529 sto duo dolores et ea rebum. Stet clita kasd gubergren, no sea
    
por 13.07.2017 / 15:49