关于dlang语言时间处理有以下几个疑问:1时间戳怎么转换为stddatetimesystimeSysTime并且可以设置时区2时间戳怎么转换为stddatetimedateDateTime并且可以设置时区3 Date newDate = Dateyear month day;TimeOfDay newTime = TimeOfDayhour minute second;怎么根据newDat
- 时间戳转换为SysTime并设置时区
import std.datetime;
import std.datetime.systime;
long timestamp = 1633075200; // 时间戳,单位为秒
TimeZone timezone = getTimeZone("Asia/Shanghai"); // 设置时区为上海
SysTime sysTime = SysTime(timestamp.seconds, timezone); // 转换为SysTime
- 时间戳转换为DateTime并设置时区
import std.datetime;
import std.datetime.systime;
long timestamp = 1633075200; // 时间戳,单位为秒
TimeZone timezone = getTimeZone("Asia/Shanghai"); // 设置时区为上海
DateTime dateTime = timestamp.toDateTime(timezone); // 转换为DateTime
- 根据Date和TimeOfDay获取DateTime
import std.datetime;
Date newDate = Date(2021, 10, 1);
TimeOfDay newTime = TimeOfDay(12, 0, 0);
DateTime combinedDateTime = newDate.toDateTime(newTime);
- 设置时区
import std.datetime.timezone;
TimeZone shanghaiTimeZone = getTimeZone("Asia/Shanghai"); // 获取上海时区
TimeZone utcTimeZone = getTimeZone("UTC"); // 获取UTC时区
// 使用时区
SysTime sysTime = SysTime(Clock.currTime, shanghaiTimeZone);
- 获取年月日并转换为时间戳
import std.datetime;
DateTime dateTime = Clock.currTime; // 获取当前时间
int year = dateTime.year;
int month = dateTime.month;
int day = dateTime.day;
long timestamp = dateTime.toUnixTime(); // 转换为时间戳,单位为秒
完整例子:
import std.datetime;
import std.datetime.systime;
import std.datetime.timezone;
void main()
{
// 1. 时间戳转换为SysTime并设置时区
long timestamp = 1633075200; // 时间戳,单位为秒
TimeZone timezone = getTimeZone("Asia/Shanghai"); // 设置时区为上海
SysTime sysTime = SysTime(timestamp.seconds, timezone); // 转换为SysTime
writeln(sysTime); // 输出:2021-Oct-01 00:00:00.000000000 +08:00
// 2. 时间戳转换为DateTime并设置时区
DateTime dateTime = timestamp.toDateTime(timezone); // 转换为DateTime
writeln(dateTime); // 输出:2021-Oct-01 00:00:00.000000000 +08:00
// 3. 根据Date和TimeOfDay获取DateTime
Date newDate = Date(2021, 10, 1);
TimeOfDay newTime = TimeOfDay(12, 0, 0);
DateTime combinedDateTime = newDate.toDateTime(newTime);
writeln(combinedDateTime); // 输出:2021-Oct-01 12:00:00.000000000
// 4. 设置时区
TimeZone shanghaiTimeZone = getTimeZone("Asia/Shanghai"); // 获取上海时区
TimeZone utcTimeZone = getTimeZone("UTC"); // 获取UTC时区
// 使用时区
SysTime sysTime2 = SysTime(Clock.currTime, shanghaiTimeZone);
writeln(sysTime2); // 输出:2021-Oct-01 23:31:24.697792000 +08:00
// 5. 获取年月日并转换为时间戳
DateTime dateTime2 = Clock.currTime; // 获取当前时间
int year = dateTime2.year;
int month = dateTime2.month;
int day = dateTime2.day;
long timestamp2 = dateTime2.toUnixTime(); // 转换为时间戳,单位为秒
writeln(year, "-", month, "-", day, " ", timestamp2); // 输出:2021-10-01 1633081884
}
``
原文地址: https://www.cveoy.top/t/topic/fI0V 著作权归作者所有。请勿转载和采集!