如何在Godot中获取当前时间以制作HH:MM:SS格式的数字时钟?
获取并格式化当前时间为HH:MM:SS(游戏开发场景)
1. Unity(C#)
直接借助C#原生的System.DateTime类即可完成:
// 获取本地当前时间 DateTime currentTime = DateTime.Now; // 格式化为24小时制的HH:MM:SS格式 string formattedTime = currentTime.ToString("HH:mm:ss");
若需UTC标准时间,将DateTime.Now替换为DateTime.UtcNow即可。
2. Unreal Engine
C++实现
#include "Misc/DateTime.h" // 获取UTC时间并转换为本地时间 FDateTime currentTime = FDateTime::UtcNow().ToLocalTime(); // 格式化输出HH:MM:SS FString formattedTime = currentTime.ToString(TEXT("%H:%M:%S"));
蓝图实现
- 调用
Get Current UTC Time节点,接着通过Convert UTC to Local Time转换为本地时间 - 调用
Format DateTime String节点,传入格式字符串%H:%M:%S,直接得到目标格式的时间字符串
3. Godot(GDScript)
利用引擎内置的OS类处理时间:
// 直接获取并格式化 var formattedTime = OS.get_datetime_string_from_system("%H:%M:%S")
也可以手动拆分时间分量再拼接:
var timeData = OS.get_datetime() var formattedTime = "%02d:%02d:%02d" % [timeData.hour, timeData.minute, timeData.second]
关键提示
如果是需要实时刷新的时钟,务必在游戏的帧更新回调(如Unity的Update、Godot的_process)或定时任务里重复获取时间,避免显示固定值;部分平台需注意时区差异,根据需求选择本地时间或UTC时间。
内容的提问来源于stack exchange,提问作者Tristan F.-R.
相关产品推荐
相关产品推荐

