DateTime,DateTimeOffset,Timestamp备忘

1. 测试一
代码
static void Main(string[] args)
{
    var now_timestamp = DateTimeOffset.Now.ToUnixTimeSeconds();
    var utc_now_timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
    if (now_timestamp == utc_now_timestamp) Console.WriteLine("always equals");
    Console.WriteLine($"now timestamp :{now_timestamp}");
    Console.WriteLine($"now timestamp datetime offset:{DateTimeOffset.FromUnixTimeSeconds(now_timestamp)}");
    Console.WriteLine($"now timestamp datetime offset to datetime:{DateTimeOffset.FromUnixTimeSeconds(now_timestamp).DateTime}");
    Console.WriteLine($"now timestamp datetime offset to local datetime:{DateTimeOffset.FromUnixTimeSeconds(now_timestamp).LocalDateTime}");
    Console.WriteLine($"utc_now timestamp :{utc_now_timestamp}");
    Console.WriteLine($"utc now timestamp datetime offset:{DateTimeOffset.FromUnixTimeSeconds(utc_now_timestamp)}");
    Console.WriteLine($"utc now timestamp datetime offset to datetime:{DateTimeOffset.FromUnixTimeSeconds(utc_now_timestamp).DateTime}");
    Console.WriteLine($"utc now timestamp datetime offset to local datetime:{DateTimeOffset.FromUnixTimeSeconds(utc_now_timestamp).LocalDateTime}");
}
结果

在这里插入图片描述

2. 测试二
代码
static void Main(string[] args)
{
    Test();
}

public static void Test()
{
    //Thread.CurrentThread.CurrentCulture = new CultureInfo("UTC");
    var utc_now = DateTimeOffset.UtcNow;
    var utc_now_timestamp = utc_now.ToUnixTimeSeconds();
    var now = DateTimeOffset.Now;
    var now_timestamp = now.ToUnixTimeSeconds();
    Console.WriteLine($"utc now:{utc_now}");
    Console.WriteLine($"utc now timestamp:{utc_now_timestamp}");
    Console.WriteLine($"now:{now}");
    Console.WriteLine($"now timestamp:{now_timestamp}");

    Console.WriteLine($"datetime now:{DateTime.Now}");
    Console.WriteLine($"datetime utc now:{DateTime.UtcNow}");

    Console.WriteLine("我是分割线---------------");
    var now_convert = ConvertStampToDateTime(now_timestamp);
    Console.WriteLine($"now convert:{now_convert}");
    Console.WriteLine("我是分割线---------------");

    var now_offset = ConvertStampToDateTimeUpgrade(now_timestamp);
    Console.WriteLine($"now offset:{now_offset}");
    Console.WriteLine($"now offset date:{now_offset.Date}");
    Console.WriteLine($"now offset datetime:{now_offset.DateTime}");
    Console.WriteLine($"now offset local datetime:{now_offset.LocalDateTime}");
    Console.WriteLine($"now offset utc datetime:{now_offset.UtcDateTime}");
}

public static DateTime ConvertStampToDateTime(long timestamp)
{
    //var dtStart = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1), TimeZoneInfo.Local);
    var dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
    dtStart = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(1970, 1, 1),TimeZoneInfo.Local);
    return dtStart.Add(TimeSpan.FromTicks(long.Parse(timestamp + "0000000")));
}

public static DateTimeOffset ConvertStampToDateTimeUpgrade(long timestamp)
{
    return DateTimeOffset.FromUnixTimeSeconds(timestamp);
}
结果

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值