.NET7:更细致的时间

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET7:更细致的时间相关的知识,希望对你有一定的参考价值。

当年在做go时,很羡慕它的时间有微秒,纳秒,在做性能优化时,能很小颗粒度的查看引入方法执行的时间,当时.net的DateTime只有毫秒(虽然也有别的办法获取)。现在,在最新的.NET7 Preview4中,DateTime也有微秒和纳秒了,倍感亲切。

纳秒在百位上,没有十位和个位,但这也说明.NET在进化,向高性能进化,在乎微秒和百位纳秒了(哈哈)。

下面是引入这两个时间单位的实现:

namespace System 
    public struct DateTime 
        public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond);
        public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.DateTimeKind kind);
        public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.Globalization.Calendar calendar);
        public int Microsecond  get; 
        public int Nanosecond  get; 
        public DateTime AddMicroseconds(double value);
    
    public struct DateTimeOffset 
        public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.TimeSpan offset);
        public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, System.TimeSpan offset, System.Globalization.Calendar calendar);
        public int Microsecond  get; 
        public int Nanosecond  get; 
        public DateTimeOffset AddMicroseconds(double microseconds);
    
    public struct TimeSpan 
        public const long TicksPerMicrosecond = 10L;
        public const long NanosecondsPerTick = 100L;
        public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds, int microseconds);
        public int Microseconds  get; 
        public int Nanoseconds  get; 
        public double TotalMicroseconds  get; 
        public double TotalNanoseconds  get; 
        public static TimeSpan FromMicroseconds(double microseconds);
    
    public struct TimeOnly 
        public TimeOnly(int day, int hour, int minute, int second, int millisecond, int microsecond);
        public int Microsecond  get; 
        public int Nanosecond  get; 
    

以上是关于.NET7:更细致的时间的主要内容,如果未能解决你的问题,请参考以下文章

『 再看.NET7』数值类型

rabbitmq 更细致的过滤

Fluent-EDEM耦合计算颗粒流动

BI - 具有不相容颗粒的事实表设计

SparseArray 那些事儿(带给你更细致的分析)

SparseArray 那些事儿(带给你更细致的分析)