替代:

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; }

Java中一个常见的习惯用法是使用currentTimeMillis()来进行计时或调度,而对1970年以来的实际毫秒数不感兴趣,而是计算一些相对值,并将currentTimeMillis()后续调用与该值进行比较。

如果这就是你正在寻找的,C#等价物是Environment.TickCount 。

我们也可以稍微想一下,并将其作为扩展方法,以便挂起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); } }

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

例如:

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

java中的System.currentTimeMillis()返回从1970年1月1日开始的以毫秒为单位的当前时间

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; }

编辑:提出了utcbuild议:)

这是一个简单的方法来近似Unix的时间戳。 使用UTC更接近于unix的概念,你需要从double到long 。

TimeSpan ts = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)); long millis = (long)ts.TotalMilliseconds; Console.WriteLine("millis={0}", millis);

打印:

millis=1226674125796

该框架不包括自1970年以来的旧秒(或毫秒)。最接近的是DateTime.Ticks,它是从0001年1月1日起的100纳秒数。

我只考虑如何实现你一直在努力的最直接的方法如下:

DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond

我知道问题要求等价,但因为我使用这两个相同的任务,我扔在GetTickCount 。 我可能怀旧,但是System.currentTimeMillis()和GetTickCount()是我用来获取滴答的唯一的。

[DllImport("kernel32.dll")] static extern uint GetTickCount(); // call uint ticks = GetTickCount();

如果你想在不同的进程间比较不同的语言(Java,C,C#),GNU / Linux和Windows(至less七个):

C#:

private static long nanoTime() { long nano = 10000L * Stopwatch.GetTimestamp(); nano /= TimeSpan.TicksPerMillisecond; nano *= 100L; return nano; }

Java的:

java.lang.System.nanoTime();

C GNU / Linux:

static int64_t hpms_nano() { struct timespec t; clock_gettime( CLOCK_MONOTONIC, &t ); int64_t nano = t.tv_sec; nano *= 1000; nano *= 1000; nano *= 1000; nano += t.tv_nsec; return nano; }

C Windows:

static int64_t hpms_nano() { static LARGE_INTEGER ticksPerSecond; if( ticksPerSecond.QuadPart == 0 ) { QueryPerformanceFrequency( &ticksPerSecond ); } LARGE_INTEGER ticks; QueryPerformanceCounter( &ticks ); uint64_t nano = ( 1000*1000*10UL * ticks.QuadPart ) / ticksPerSecond.QuadPart; nano *= 100UL; return nano; }

Current在Java里面_在C#中相当于Java System.currentTimeMillis()相关推荐

  1. java 企业版_下列版本中哪个是Java 企业版

    下列版本中哪个是Java 企业版 2021-02-07 下列版本中哪个是Java 企业版 张爱玲评价自己的服饰:"仿佛穿着博物院的()到处走,遍体森森然飘飘欲仙".转动惯量是刚体转 ...

  2. 面向对象性不属于Java语言_以下叙述中不属于Java语言特点的是()。 A.面向对象B.可移植性C.多线程...

    克劳塞维茨论的两个关键词分别是 海德格尔认为,人是必死的,但人也是能死的. 某宇航员在太空作业时,身体处于漂浮状态,不能维持姿势.维持躯体姿势的最基本的反射是: 道德的本性是? 克服各种难点的方法,下 ...

  3. java swt 画按钮_向表中添加按钮(java swt)

    我正在尝试复制类似于此的UI: 我一直在关注如何创建表格每列中的按钮的作者说明(没有成功).我的项目与他的区别在于我正在尝试使用Tree而不是Table,而我正在使用eclipse TreeViewe ...

  4. selenium java 验证码_如何使用Selenium WebDriver和Java从图像(验证码)中读取文本

    我有注册网页,但在最后验证码显示.. 我无法从图像中读取文本.我要提一下代码和输出.. @Test public void loginTest() throws InterruptedExceptio ...

  5. ubuntu java classpath 设置_在Ubuntu中正确设置java classpath和java_home

    我有错误 Exception in thread"main" java.lang.NoClassDefFoundError: 当我尝试在Ubuntu上运行编译类时.我使用的是一个非 ...

  6. js encodeurl java接收_在JS中encodeURI(url)怎样才能不出现乱码?

    这次给大家带来在JS中encodeURI(url)怎样才能不出现乱码?,在JS中使用encodeURI(url)的注意事项有哪些,下面就是实战案例,一起来看一下. 一般情况下, 发送 encodeUR ...

  7. js 中 java 代码_在js中嵌套java代码

    jsp中有时候在js中操作某些java后台传递过来的数据逻辑比较复杂,比如list内容的遍历,可以直接在页面上添加java脚本来执行内容,代码如下: //在js中插入java代码操作 //取出java ...

  8. 修改docker内java内存_在docker中使用java的内存情况

    Java和Docker不是天然的朋友. Docker可以设置内存和CPU限制,而Java不能自动检测到.使用Java的Xmx标识(繁琐/重复)或新的实验性JVM标识,我们可以解决这个问题. 虚拟化中的 ...

  9. java写入txt数据丢失_文件传输中的数据丢失 – JAVA?

    我有一个FileServer和一个FileClient,服务器在客户端连接时发送文件.这是一个简单的程序,只是为了理解背后的概念. 我能够将文件从Server发送到Client,缓冲区为1024. 问 ...

  10. c语言实现java接口_五分钟带你了解Java是如何从容而优雅地实现接口数据校验

    本篇文章给大家分享平时开发中总结的一点小技巧!在工作中写过Java程序的朋友都知道,目前使用Java开发服务最主流的方式就是通过Spring MVC定义一个Controller层接口,并将接口请求或返 ...

最新文章

  1. POJ 1860 Currency Exchange
  2. Xamarin XAML语言教程使用Progress属性数据绑定设置进度条进度
  3. node.js 原型污染攻击的分析与利用
  4. 用神经网络二分类吸引子与排斥子
  5. 多對多、單向一對多做ORM時最好用基于连接表的方式
  6. Java类名与包名不区分大小写
  7. linux 安装rmp服务,Linux LAMP服务的rpm包安装与配置
  8. Docker搭建WebLogic服务器
  9. 7-160 找完数 (20 分)
  10. App设计之路——WebApp浅谈
  11. wordpress网站被挂马处理
  12. Thingworx- 创建一个事物
  13. 佳沛金果水果的文案,水果佳沛金果文案高级感
  14. 什么是stochastic regressor
  15. 中国自然地理分区数据集 (含农业区划、森林工程、生态保护区、九大流域等)
  16. html手机端页面meta,移动端网页meta设置和响应式
  17. 解决报错(Navigation cancelled from “/roleList“ to “/userlist“ with a new navigation.)_@jie
  18. 流氓软件终极杀手 Universal Extractor 【 推荐一个 流氓软件客星 】
  19. 中华英才网爬虫程序(3)-queue和threading模块的结合使用
  20. 密码学概述与基本加密方式

热门文章

  1. pip install安装php,Python下的常用下载安装工具pip的安装方法
  2. python中提取几列_自己录制的公开课视频中提取字幕(python+opencv+Tesseract-OCR)
  3. kali 安装volatility_电子取证技术之实战Volatility工具
  4. mac学python_新手小白学Python必备编程利器Pycharm快捷键大全(Win+Mac)
  5. 视觉SLAM——D435i运行ORB-SLAM3-mono(依赖ros版)
  6. oracle 多版本机制,关于oracle多版本机制副作用的问题-Oracle
  7. cubrid php,PHP - Manual: CUBRID (官方文档)
  8. hexeditor 复制二进制值_MySQL并发复制演进
  9. 计算机可以配置端口号吗,如何设置打印机端口,详细教您设置电脑打印机端口...
  10. infinitescroll php,WordPress: 增加无限分页(Infinite Scroll)功能