KDK_SYSTEM_TIMEFORMAT_TRANSFORM(3)
💖 KDK_SYSTEM_TIMEFORMAT_TRANSFORM 💖
okay bestie, welcome to KDK_SYSTEM_TIMEFORMAT_TRANSFORM(3), straight outta the Library Functions Manual section 3, and lemme tell you, this one is a whole vibe. it's giving "time zone bestie energy." 🕰️✨
✨ NAME ✨
kdk_system_timeformat_transform — 时间格式转化 (time format transform, iykyk) 💅
🌸 SYNOPSIS 🌸
#include <libkydate.h>
extern kdk_timeinfo *kdk_system_timeformat_transform(struct tm *ptr);
Link with -lkydate.
bestie do NOT forget that -lkydate link flag or the linker will simply pass away 💀
🦋 DETAILED DESCRIPTION 🦋
so the whole point of this function — its main character moment, if you will — is to take the time you got from struct tm (yes, the standard library one, the OG) and convert it into a structure in the user settings format. glow-up for your timestamps, fr fr. 🌈
the argument ptr is a pointer to struct tm. that's it. that's the whole assignment. 🎀
💜 RETURN VALUE 💜
on success, it returns a pointer to a kdk_timeinfo structure, which is defined in <libkydate.h> as follows:
typedef struct _kdk_timeinfo{
char *time; // 时间
char *timesec; //带秒钟数时间
}kdk_timeinfo;
on error, it returns NULL. 😭 (not me getting a NULL back and spiraling)
👑 EXAMPLES 👑
here's the whole thing, bestie, and no i did not touch a single character of it because that's the rules:
#include "libkydate.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include <glib.h>
#include <glib-object.h>
int main()
{
int ret = kdk_system_set_long_dateformat("2230年3月4日");
ret = kdk_system_set_short_dateformat("22/5/3");
char *ld = kdk_system_get_longformat_date();
printf("long res = %s0, ld);
free(ld);
char *sd = kdk_system_get_shortformat_date();
printf("short res = %s0, sd);
free(sd);
char *ll = kdk_system_get_longformat();
printf("longformat = %s0, ll);
free(ll);
char *ss = kdk_system_get_shortformat();
printf("shortformat = %s0, ss);
free(ss);
struct tm ptr;
ptr.tm_year = 2322;
ptr.tm_mon = 9;
ptr.tm_mday = 3;
char *lt = kdk_system_longformat_transform(&ptr);
printf("longformat_transform = %s0, lt);
free(lt);
ptr.tm_year = 2022;
ptr.tm_mon = 3;
ptr.tm_mday = 2;
char *st = kdk_system_shortformat_transform(&ptr);
printf("shortformat_transform = %s0, st);
free(st);
kdk_logn_dateinfo *info = kdk_system_login_lock_dateinfo("szm");
printf("date = %s,time = %s,week = %s0,info->date,info->time,info->week);
kdk_free_logn_dateinfo(info);
ptr.tm_hour = 19;
ptr.tm_min = 3;
ptr.tm_sec = 2;
kdk_timeinfo *ti = kdk_system_timeformat_transform(&ptr);
printf("time = %s, timesec = %s0, ti->time, ti->timesec);
kdk_free_timeinfo(ti);
return 0;
}
notice how the actual star of the show, kdk_system_timeformat_transform(&ptr), shows up near the end with tm_hour = 19, tm_min = 3, tm_sec = 2? yeah. she's the finale. 🌟 and yes you gotta kdk_free_timeinfo(ti) after — free your memory bestie, it's self care. 🫶
🧚 CONFORMING TO 🧚
these functions are as per the withdrawn POSIX.1e draft specification. (withdrawn?? okay dramatic. 💀)
the following functions are Linux extensions:
kdk_system_get_dateformat()kdk_system_set_dateformat()kdk_system_set_24_timeformat()kdk_system_set_12_timeformat()kdk_system_get_now_dateformat()kdk_system_get_now_timeformat()kdk_system_tran_dateformat()kdk_system_nowtime()kdk_system_nowdate()kdk_system_shortweek()kdk_system_longweek()kdk_system_second()kdk_system_logn_dateinfo()kdk_system_gjx_time()kdk_date_freeall()kdk_free_dateinfo()kdk_free_logn_dateinfo()kdk_system_set_long_dateformat()kdk_system_set_short_dateformat()kdk_system_get_longformat_date()kdk_system_get_shortformat_date()kdk_system_get_longformat()kdk_system_get_shortformat()kdk_system_longformat_transform()kdk_system_shortformat_transform()kdk_system_login_lock_dateinfo()kdk_free_timeinfo()
periodt. 💅
🔥 SEE ALSO 🔥
the whole friend group, go say hi:
kdk_system_get_dateformat(3)kdk_system_set_dateformat(3)kdk_system_set_24_timeformat(3)kdk_system_set_12_timeformat(3)kdk_system_get_now_dateformat(3)kdk_system_get_now_timeformat(3)kdk_system_tran_dateformat(3)kdk_system_nowtime(3)kdk_system_nowdate(3)kdk_system_shortweek(3)kdk_system_longweek(3)kdk_system_second(3)kdk_system_logn_dateinfo(3)kdk_system_gjx_time(3)kdk_date_freeall(3)kdk_free_dateinfo(3)kdk_free_logn_dateinfo(3)kdk_system_set_long_dateformat(3)kdk_system_set_short_dateformat(3)kdk_system_get_longformat_date(3)kdk_system_get_shortformat_date(3)kdk_system_get_longformat(3)kdk_system_get_shortformat(3)kdk_system_longformat_transform(3)kdk_system_shortformat_transform(3)kdk_system_login_lock_dateinfo(3)kdk_free_timeinfo(3)
and that's the page bestie!! this lil masterpiece comes to you from the Linux Programmer's Manual, dated Tue Sep 19 2023 — no cap, that's the whole source and version right there. stay slaying, free your pointers, and may all your timestamps transform flawlessly. mwah 💋✨🦋
📦 where this page comes from
- arch rolling: libkysdk-system 3.0.1.4-1 · LGPL-3.0-or-later AND LGPL-2.1-only OR LGPL-3.0-only AND LGPL-2.1-only WITH Qt-LGPL-exception-1.1 OR LGPL-3.0-only WITH Qt-LGPL-exception-1.1 AND MIT
- ubuntu resolute: libkysdk-system-dev 3.0.1.2-0ubuntu1 · LGPL-3.0-only
- ubuntu stonking: libkysdk-system-dev 3.0.1.3-0ubuntu1 · LGPL-3.0-or-later
- 💖 girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms