2121# along with this program. If not, see <https://www.gnu.org/licenses/>.
2222
2323import datetime
24+ import locale
2425import math
2526import os
2627import platform
2728import sys
2829
30+ import babel .dates
2931from psutil ._common import bytes2human
3032
3133import library .config as config
@@ -756,9 +758,17 @@ class Date:
756758 @staticmethod
757759 def stats ():
758760 date_now = datetime .datetime .now ()
761+
762+ if platform .system () == "Windows" :
763+ # Windows does not have LC_TIME environment variable, use deprecated getdefaultlocale() that returns language code following RFC 1766
764+ lc_time = locale .getdefaultlocale ()[0 ]
765+ else :
766+ lc_time = babel .dates .LC_TIME
767+
759768 if config .THEME_DATA ['STATS' ]['DATE' ]['DAY' ]['TEXT' ].get ("SHOW" , False ):
769+ date_format = config .THEME_DATA ['STATS' ]['DATE' ]['DAY' ]['TEXT' ].get ("FORMAT" , 'medium' )
760770 display .lcd .DisplayText (
761- text = f"{ date_now . strftime ( '%x' )} " ,
771+ text = f"{ babel . dates . format_date ( date_now , format = date_format , locale = lc_time )} " ,
762772 x = config .THEME_DATA ['STATS' ]['DATE' ]['DAY' ]['TEXT' ].get ("X" , 0 ),
763773 y = config .THEME_DATA ['STATS' ]['DATE' ]['DAY' ]['TEXT' ].get ("Y" , 0 ),
764774 font = config .THEME_DATA ['STATS' ]['DATE' ]['DAY' ]['TEXT' ].get ("FONT" ,
@@ -773,8 +783,9 @@ def stats():
773783 )
774784
775785 if config .THEME_DATA ['STATS' ]['DATE' ]['HOUR' ]['TEXT' ].get ("SHOW" , False ):
786+ time_format = config .THEME_DATA ['STATS' ]['DATE' ]['HOUR' ]['TEXT' ].get ("FORMAT" , 'medium' )
776787 display .lcd .DisplayText (
777- text = f"{ date_now . strftime ( '%X' )} " ,
788+ text = f"{ babel . dates . format_time ( date_now , format = time_format , locale = lc_time )} " ,
778789 x = config .THEME_DATA ['STATS' ]['DATE' ]['HOUR' ]['TEXT' ].get ("X" , 0 ),
779790 y = config .THEME_DATA ['STATS' ]['DATE' ]['HOUR' ]['TEXT' ].get ("Y" , 0 ),
780791 font = config .THEME_DATA ['STATS' ]['DATE' ]['HOUR' ]['TEXT' ].get ("FONT" ,
0 commit comments