import dotNet;
import console
// 创建 aardio 时间对象
var aardioTime = time();
/*
aardio 时间对象在调用 .NET 时可自动转为 System.DateTime,不需额外处理。
.NET 总是将这种自动转换得到的时间标记为本地时间(不会自动转换时区),这点需要注意。
调用 System.DateTime(aardioTime) 可显式将 aardio 时间转换为 System.DateTime,
这种方式总是事先将 aardio 时间转为本地时间(不会改变传入参数),可保证 Unix 时间戳一致性。
*/
var netTime = System.DateTime(aardioTime);
// 直接创建 .NET 日期时间对象
netTime = System.DateTime(2024, 1, 1);
// netTime 解包为 aardio 的 time 对象,netTime 是一个 .NET 封装对象( dotNet.object )
aardioTime = netTime.Value;
/*
.NE 返回的 aardioTime 总是使用本地时区。
即使 netTime 是 UTC 时间也会被转换为本地时间返回(不会改变 netTime 自身)。
*/
aardioTime.utc(); //可调用 utc 函数转换为 UTC 时间
// .NET 时间转为 ISO8601 格式的字符串
var iso8601 = tostring(netTime,"o") // 等价于 netTime.ToString("o")
// 解析 ISO8601 时间字符串为 aardio 的 time.iso8601 对象(实际就是 time 对象)
var tm = time.iso8601(iso8601)
//修改时间
tm.addYears(2)
//将 time.iso8601 对象再次转换为 ISO8601 格式字符串
var iso8601 = tostring(tm)
//将字符串 iso8601 转换为 System.DateTime
var netTime2 = System.DateTime.Parse(iso8601);
//输出结果验证
print(
tostring(netTime2,"yyyy-MM-dd HH:mm:ss") //等价于 netTime2.ToString("yyyy-MM-dd HH:mm:ss")
);
// aardio 时间则默认使用百分号风隔的格式串。
var str = tostring(aardioTime,"%Y年%m月%d日 %H时%M分%S秒");
print(str);
// 也是也兼容无百分号风格的时间格式串
print( aardioTime.format("yyyy-MM-dd HH:mm:ss") );
Markdown 格式