Jump to content
nuno35

[Resolvido] Mudar formato das datas

Recommended Posts

nuno35

Boa noite

Tenho esta lista de datas:

['04/03/2016', '15/03/2016', '03/08/2016']

e queria converter as datas para este formato AAAAMMDD de modo a ficar

['20160304','20160315','20160803']

Como é que posso fazer isto?

Desde já Obrigado

Share this post


Link to post
Share on other sites
pwseo

Uma vez que este tópico foi criado há já mais de um mês e o OP não voltou para ajudar na sua resolução, resolvi colocar aqui uma forma de resolver, e marcar o tópico como resolvido.

Existem várias formas de abordar este problema, mas talvez o mais conceptualmente correcto seja converter as representações textuais de datas para verdadeiros objectos datetime, através da função strptime(). De seguida, convertemos o objecto para uma nova string com o novo formato, recorrendo à strftime(), assim:

from datetime import datetime as dt

def converter(old):
   # Converter para um objecto datetime
   date = dt.strptime(old, '%d/%m/%Y')

   # Converter para string com formato apropriado
   new  = dt.strftime(date, '%Y%m%d')

   return new

Logicamente, podemos encurtar a definição para o seguinte:

from datetime import datetime as dt

def converter(old):
   return dt.strftime(dt.strptime(old, '%d/%m/%Y'), '%Y%m%d')

E agora, finalmente, podemos testar a função:

>>> orig = ['04/03/2016', '15/03/2016', '03/08/2016']
>>> orig
['04/03/2016', '15/03/2016', '03/08/2016']
>>> [converter(d) for d in orig]
['20160304', '20160315', '20160803']

Adenda: obviamente poderíamos lidar com o problema de forma mais eficiente se considerássemos que cada data é uma string com um formato fixo; poderíamos dividí-la facilmente em 3 elementos cujas posições seriam fáceis de mudar e devolver uma nova string. A abordagem aqui demonstrada é apenas uma das muito possíveis e, admitidamente, não será a mais eficiente, mas é apesar de tudo a mais correcta conceptualmente.

Edited by pwseo
Adicionada solução possível após mais de 1 mês de inactividade do OP.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.