当前位置:  开发笔记 > 编程语言 > 正文

C#中的Java System.currentTimeMillis()等效

如何解决《C#中的JavaSystem.currentTimeMillis()等效》经验,为你挑选了6个好方法。

System.currentTimeMillis()C#中Java的等价物是什么?



1> Jon Skeet..:

替代:

private static readonly DateTime Jan1st1970 = new DateTime
    (1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

public static long CurrentTimeMillis()
{
    return (long) (DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
}



2> Barend..:

Java中常见的习惯用法是currentTimeMillis()用于计时或调度目的,你对自1970年以来的实际毫秒数不感兴趣,而是计算一些相对值并比较以后currentTimeMillis()对该值的调用.

如果这就是你要找的东西,那么等效的C#就是Environment.TickCount.



3> 小智..:

如果您对TIMING感兴趣,请添加对System.Diagnostics的引用并使用秒表.

例如:

var sw = Stopwatch.StartNew();
...
var elapsedStage1 = sw.ElapsedMilliseconds;
...
var elapsedStage2 = sw.ElapsedMilliseconds;
...
sw.Stop();



4> Hath..:

System.currentTimeMillis()Java中返回从1/1/1970以毫秒为单位的当前时间

c#将是

public static double GetCurrentMilli()
    {
        DateTime Jan1970 = new DateTime(1970, 1, 1, 0, 0,0,DateTimeKind.Utc);
        TimeSpan javaSpan = DateTime.UtcNow - Jan1970;
        return javaSpan.TotalMilliseconds;
    }

编辑:按建议制作utc :)


DateTime.Now使用本地时间,而不是UTC.我不确切地知道当你从本地的DateTime中减去一个未知类型的DateTime时会发生什么,但是最好将它们都设置为UTC :)

5> Joel Coehoor..:

我们也可以稍微看一下它作为扩展方法,以便它挂起DateTime类:

public static class DateTimeExtensions
{
    private static DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
    public static long currentTimeMillis(this DateTime d)
    {
        return (long) ((DateTime.UtcNow - Jan1st1970).TotalMilliseconds);
    }
}


这有点不对吗?此扩展方法将传递给DateTime的任何*instance*,但它不使用该实例.只是看起来令人困惑......我认为你不应该要求你不使用的参数

6> Ramunas..:
DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有