GCC中strftime的自定义区域设置字符串

GCC中strftime的自定义区域设置字符串,c,internationalization,stm32,C,Internationalization,Stm32,我正在为将在stm32f103微控制器上运行的时钟编写固件。我将gcc与标准C库一起使用,并使用strftime函数格式化时钟显示,如下所示: char sz[24]; strftime(sz, sizeof(sz), "%H:%M %p", &clockValues); // %H = 12 hour, %I = 24 hour, %p = AM/PM 12:45 PM 正如预期的那样,这会产生如下输出: char sz[24]; strftime(sz, sizeof(sz),

我正在为将在stm32f103微控制器上运行的时钟编写固件。我将gcc与标准C库一起使用,并使用strftime函数格式化时钟显示,如下所示:

char sz[24];
strftime(sz, sizeof(sz), "%H:%M %p", &clockValues); // %H = 12 hour, %I = 24 hour, %p = AM/PM
12:45 PM
正如预期的那样,这会产生如下输出:

char sz[24];
strftime(sz, sizeof(sz), "%H:%M %p", &clockValues); // %H = 12 hour, %I = 24 hour, %p = AM/PM
12:45 PM
然而,由于我使用的TFT显示器尺寸较小,我想用一个字符替换AM/PM,该字符将显示为自定义标志符号(基本上,AM或PM压缩到单个字符空间)

我假设这将是一个基于C语言环境创建自定义语言环境的简单问题,但是随着时间格式字符串的改变。我已经搜索过了,但还没有找到创建自定义区域设置的方法


是否可以更改C语言环境的模板字符串?

注意:注释
%I=24小时
似乎与代码无关。如何进行后期处理
sz
并删除最后一个字母?@chux-这只是我的一个说明。是的,后处理始终是一种选择。如果可能的话,我更愿意使用模板字符串。您的注释是
/%H=12小时,%I=24小时,
-您的注释具有
%H
%I
的含义。使用
%H
作为24小时时钟;在12小时内使用
%I
。创建、安装、使用具有自定义字体的自定义代码点的自定义区域设置是一项非常重要的、固有的平台特定练习。这不是一件容易做到的事情。您将使用Unicode字体的PUA(专用区域),还是将如何介绍这些字符?你还打算从哪里继承其他哪些角色?您将如何处理字体缩放?你确定要这样做吗?注意:注释
%I=24小时
似乎与代码无关。如何进行后期处理
sz
并删除最后一个字母?@chux-这只是我的一个说明。是的,后处理始终是一种选择。如果可能的话,我更愿意使用模板字符串。您的注释是
/%H=12小时,%I=24小时,
-您的注释具有
%H
%I
的含义。使用
%H
作为24小时时钟;在12小时内使用
%I
。创建、安装、使用具有自定义字体的自定义代码点的自定义区域设置是一项非常重要的、固有的平台特定练习。这不是一件容易做到的事情。您将使用Unicode字体的PUA(专用区域),还是将如何介绍这些字符?你还打算从哪里继承其他哪些角色?您将如何处理字体缩放?你确定这是路吗?