27 lines
689 B
Python
Executable file
27 lines
689 B
Python
Executable file
# -*- mode: python; coding: utf-8 -*-
|
|
# Source:
|
|
# http://stackoverflow.com/questions/18593661/how-do-i-strftime-a-date-object-in-a-different-locale
|
|
import locale
|
|
import threading
|
|
|
|
from datetime import datetime
|
|
from contextlib import contextmanager
|
|
|
|
|
|
LOCALE_LOCK = threading.Lock()
|
|
|
|
@contextmanager
|
|
def setlocale(name):
|
|
with LOCALE_LOCK:
|
|
saved = locale.setlocale(locale.LC_ALL)
|
|
try:
|
|
current_val = locale.setlocale(locale.LC_ALL, name)
|
|
except:
|
|
current_val = saved
|
|
print("Warning: Failed setting locale %r" % name)
|
|
|
|
try:
|
|
yield current_val
|
|
finally:
|
|
locale.setlocale(locale.LC_ALL, saved)
|
|
|