将一个时间转换为秒形式的时间戳:
var ts = ((DateTimeOffset)DateTime.UtcNow.AddDays(7)).ToUnixTimeSeconds()
这里涉及类型转换:(DateTimeOffset)DateTime
看下两个类的定义,并没有父子类的继承关系
C#中的转换有两种情况:
显式转换
一个对象转换为另外一个类型,会丢失细节,必须使用显式转换:
double num = 0.5;
int i = (int) num;
隐式转换
一个对象转换为另外一个类型,必定成功,可以用隐式转换:
int i = 1;
double num = i;
对于一个类,如果要实现形如(DateTimeOffset)DateTime
的隐式转换,需要implicit
关键字,可以看到DateTimeOffset
中就有相关实现:
public static implicit operator DateTimeOffset(DateTime dateTime) =>
new DateTimeOffset(dateTime);
直接使用:
DateTimeOffset offset = DateTime.UtcNow.AddDays(7);
var ts = offset.ToUnixTimeSeconds();
全部评论