unsupported today spanish number example python date locale

today - Formato de fecha de configuración regional en Python



strftime python (5)

¿Cómo datetime.datetime.now() en el idioma nativo?

>>> session.deathDate.strftime("%a, %d %b %Y") ''Fri, 12 Jun 2009''

Me gustaría obtener el mismo resultado pero en el idioma local.


Debe usar %x y %X para formatear la cadena de fecha en la configuración regional correcta. Por ejemplo, en sueco, una fecha se representa como 2014-11-14 lugar de 11/14/2014 .

La forma correcta de obtener el resultado como Unicode es:

locale.setlocale(locale.LC_ALL, lang) format_ = datetime.datetime.today().strftime(''%a, %x %X'') format_u = format_.decode(locale.getlocale()[1])

Aquí está el resultado de múltiples idiomas:

Bulgarian пет, 14.11.2014 г. 11:21:10 ч. Czech pá, 14.11.2014 11:21:10 Danish fr, 14-11-2014 11:21:10 German Fr, 14.11.2014 11:21:10 Greek Παρ, 14/11/2014 11:21:10 πμ English Fri, 11/14/2014 11:21:10 AM Spanish vie, 14/11/2014 11:21:10 Estonian R, 14.11.2014 11:21:10 Finnish pe, 14.11.2014 11:21:10 French ven., 14/11/2014 11:21:10 Croatian pet, 14.11.2014. 11:21:10 Hungarian P, 2014.11.14. 11:21:10 Italian ven, 14/11/2014 11:21:10 Lithuanian Pn, 2014.11.14 11:21:10 Latvian pk, 2014.11.14. 11:21:10 Dutch vr, 14-11-2014 11:21:10 Norwegian fr, 14.11.2014 11:21:10 Polish Pt, 2014-11-14 11:21:10 Portuguese sex, 14/11/2014 11:21:10 Romanian V, 14.11.2014 11:21:10 Russian Пт, 14.11.2014 11:21:10 Slovak pi, 14. 11. 2014 11:21:10 Slovenian pet, 14.11.2014 11:21:10 Swedish fr, 2014-11-14 11:21:10 Turkish Cum, 14.11.2014 11:21:10 Chinese 周五, 2014/11/14 11:21:10


Otra opción es:

>>> import locale >>> import datetime >>> locale.setlocale(locale.LC_TIME,'''') ''es_CR.UTF-8'' >>> date_format = locale.nl_langinfo(locale.D_FMT) >>> date_format ''%d/%m/%Y'' >>> today = datetime.date.today() >>> today datetime.date(2012, 4, 23) >>> today.strftime(date_format) ''23/04/2012''


Puedes simplemente configurar la configuración regional como en este ejemplo:

>>> import time >>> print time.strftime("%a, %d %b %Y %H:%M:%S") Sun, 23 Oct 2005 20:38:56 >>> import locale >>> locale.setlocale(locale.LC_TIME, "sv_SE") # swedish ''sv_SE'' >>> print time.strftime("%a, %d %b %Y %H:%M:%S") sön, 23 okt 2005 20:39:15


Si se supone que su aplicación admite más de una configuración regional, se desaconseja obtener un formato localizado de fecha / hora cambiando la configuración regional (por medio de locale.setlocale() ). Para obtener una explicación de por qué es una mala idea, consulte la answer Alex Martelli a la pregunta Uso de la configuración regional de Python o equivalente en las aplicaciones web. (básicamente la configuración regional es global y afecta a toda la aplicación, por lo que cambiarla podría cambiar el comportamiento de otras partes de la aplicación)

Puedes hacerlo limpiamente usando el paquete Babel así:

>>> from datetime import date, datetime, time >>> from babel.dates import format_date, format_datetime, format_time >>> d = date(2007, 4, 1) >>> format_date(d, locale=''en'') u''Apr 1, 2007'' >>> format_date(d, locale=''de_DE'') u''01.04.2007''

Ver la sección de Fecha y Hora en la documentación de Babel.


solución para el idioma ruso y multiplataforma

import sys import locale import datetime if sys.platform == ''win32'': locale.setlocale(locale.LC_ALL, ''rus_rus'') else: locale.setlocale(locale.LC_ALL, ''ru_RU.UTF-8'') print(datetime.date.today().strftime("%B %Y"))

Ноябрь 2017