This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C129XNCZAD:在 A.M/p.m 的情况下以24小时格式显示时间

Guru**** 2391165 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1058398/tm4c129xnczad-display-time-in-24-hour-format-instaed-of-a-m-p-m

器件型号:TM4C129XNCZAD

尊敬的先生:

我在 我们的定制板中使用 Tm4c129X 休眠模式的示例代码。

日期时间 显示在 AM 和 PM 模式下工作正常、但我需要24小时格式的日期时间。

我在代码中包含了示例的日期 time.c 文件。

第一次启动时、我们将写入日期时间 、如下所示

G_ui32DayIdx=15;
G_ui32MonthIdx=11;
G_ui32YearIdx=21;
G_ui32HourIdx=12;
G_ui32MinIdx=59;

DateTimeSet();

每秒读取一次、如下所示

bRTCUpdate = DateTimeDisplayGet (g_pcDateTimeBuf、sizeof (g_pcDateTimeBuf));
if (bRTCUpdate)
RTC_I_RANGE_Update ();

日期时间显示为  

15.11.2021 01.00 、而不是15.11.2021 13:00

我想直接在24小时内显示时间 、而不是在 A.M/P.m 中显示时间

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

      DateTimeDisplayGet 是在示例中编写的用户函数。  DateTimeDisplayGet 不是 TivaWare API。 如果在日历示例中查看 DateTimeDisplayGet 代码,则会调用 DateTimeGet ()。 DateTimeGet ()最终调用 TivaWare API HibernateCalendarGet ()。 请参见下面的。  HibernateCalendarGet 将以24小时表示的形式返回当前时间。 因此 、TivaWare API HibernateCalendarGet ()没有问题。  

    它是 DateTimeGet()用户函数,执行后处理以生成 AM/PM 时间,而不是24小时时间。 您可以随意以所需的格式修改示例。 再说一次,DateTimeGet ()是一个用户函数,而不是 TivaWare API。

    布尔
    DateTimeGet (struct tm *计时,char * pcAMPM)

    //
    //获取最新时间。
    //
    HibernateCalendarGet (Stime);

    //
    //是否读取了有效数据?
    //
    if ((((Stime->TM_sec < 0)||(Stime->TM_sec > 59))||
    (((Stime->TM_min < 0)||(Stime->TM_min > 59))||
    (((Stime->TM_Hour < 0)||(Stime->TM_Hour > 23))||
    ((Stime->TM_mday < 1)||(Stime->TM_mday > 31))||
    (((Stime->TM_mon < 0)||(Stime->TM_mon > 11))||
    (((Stime->TM_year < 100)||(Stime->TM_year > 199)))

    //
    //否-通过返回相关信息让应用程序知道相同的信息
    //消息。
    //
    返回 false;

    //
    //将 AM 设置为默认值。
    //
    strcpy (pcAMPM、"am");

    //
    //将24小时格式转换为具有 AM/PM 指示的12小时格式。
    //
    if (Stime->TM_hour ==0)

    Stime->TM_Hour = 12;
    strcpy (pcAMPM、"am");

    否则(Stime->TM_hour == 12)

    strcpy (pcAMPM、"PM");

    否则(Stime->TM_hour >12)

    Stime->TM_Hour --= 12;
    strcpy (pcAMPM、"PM");

    //
    //返回可用的新数据,以便可以显示。
    //
    返回 true;