解析时间戳函数
authorCaisking <3449750381@qq.com>
Sat, 15 Jun 2024 09:38:01 +0000 (17:38 +0800)
committerCaisking <3449750381@qq.com>
Sat, 15 Jun 2024 09:38:01 +0000 (17:38 +0800)
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h

index 6131fc9..8c3d814 100644 (file)
@@ -784,6 +784,42 @@ errcode_t uapi_get_yyyymmddhhmmss_Date(char *date)
     }
     return ERRCODE_SUCC;
 }
+/**
+ * @param {uint32_t} time 时间戳
+ * @param {char} *p_time 字符串
+ * @param {bool} *include_seconds 是否包含秒
+ * @param {char} 隔断符
+ * @brief 通过时间戳获取日期
+ */
+errcode_t uapi_get_TIME_STR(uint32_t time,char *p_time, char separator, bool include_seconds)
+{
+    if (p_time == NULL)
+    {
+        return ERRCODE_FAIL;
+    }
+
+    time_t rawtime = (time_t)time;
+    struct tm *timeinfo = localtime(&rawtime);
+
+    if (timeinfo == NULL)
+    {
+        return ERRCODE_FAIL;
+    }
+
+    // 根据需要格式化日期时间字符串,包括时分秒和分隔符
+    if (include_seconds)
+    {
+        sprintf(p_time, "%04d%c%02d%c%02d %02d%c%02d", timeinfo->tm_year + 1900, separator, timeinfo->tm_mon + 1, separator,
+                timeinfo->tm_mday, timeinfo->tm_hour, separator, timeinfo->tm_min);
+    }
+    else
+    {
+        sprintf(p_time, "%04d%c%02d%c%02d %02d%c%02d", timeinfo->tm_year + 1900, separator, timeinfo->tm_mon + 1, separator,
+                timeinfo->tm_mday, timeinfo->tm_hour, separator, timeinfo->tm_min);
+    }
+
+    return ERRCODE_SUCC;
+}
 
 /**
  * @param {char} *p_time
index 80537d6..8856f04 100644 (file)
@@ -72,15 +72,17 @@ errcode_t uapi_get_yyyymmddhhmmss_Date(char *date);
 errcode_t uapi_get_YYMMDD_Time(char *p_time, char separator);
 
 /*获取日期扩展版*/
-
 errcode_t uapi_get_YYMMDD_Time_extend(char *p_time, char separator,uint8_t day);
 
+
 /*获取时间*/
 errcode_t uapi_get_HHMMSS_Time(char *p_time, char separator, bool include_seconds);
 /*获取星期*/
 errcode_t uapi_get_WeekStr(char *p_week);
 /*设置屏幕亮屏*/
 void uapi_set_screen_on_api(void);
+/*通过时间戳解析时间字符串*/
+errcode_t uapi_get_TIME_STR(uint32_t time,char *p_time, char separator, bool include_seconds);
 
 char *uapi_get_local_yyyymmdd_date(void);