c# 获取当前时间
void Main() {var time = GetNetworkTime();time.Dump(); }public static DateTime GetNetworkTime(string ntpServer = "cn.pool.ntp.org") {try{// NTP消息结构(48字节)byte[] ntpData = new byte[48];ntpData[0] = 0x1B; // 设置协议版本和模式// 创建UDP客户端using (var socket = new UdpClient(ntpServer, 123)){socket.Send(ntpData, ntpData.Length);IPEndPoint remoteEP = null;ntpData = socket.Receive(ref remoteEP);}// 解析NTP时间戳(从第40字节开始)ulong intPart = (ulong)ntpData[40] << 24 | (ulong)ntpData[41] << 16 |(ulong)ntpData[42] << 8 | ntpData[43];ulong fractPart = (ulong)ntpData[44] << 24 | (ulong)ntpData[45] << 16 |(ulong)ntpData[46] << 8 | ntpData[47];// 转换为UNIX时间戳(1900年1月1日 → 1970年1月1日)ulong milliseconds = (intPart * 1000) + ((fractPart * 1000) / 0x100000000L);var networkTime = new DateTime(1900, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(milliseconds);return networkTime.ToLocalTime();}catch (Exception ex){Console.WriteLine($"获取网络时间失败: {ex.Message}");return DateTime.Now; // 失败时返回本地时间 } }
桂棹兮兰桨,击空明兮溯流光。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/967267.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
YOLOv3 深度解析:网络架构、核心改进与目标检测实践 - 指南
YOLOv3 深度解析:网络架构、核心改进与目标检测实践 - 指南2025-11-16 18:35
tlnshuju
阅读(0)
评论(0) 收藏
举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !importa…
ai学习机是不是智商税?到底有没有用?2025年学习机推荐指南
ai学习机是不是智商税?到底有没有用?2025年学习机推荐指南结论:AI学习机并非简单的“智商税”,但也不是万能神器。其价值高度依赖于产品真实的技术实力和是否契合孩子的学习需求。
🤔 一、AI学习机是智商税吗?
…
2025 年 11 月石笼网厂家最新推荐,实力品牌深度解析采购无忧之选!
在全球水利防护、交通建设等工程领域,石笼网品牌实力直接决定采购安全性与工程可靠性。据国际丝网产业协会(ISIA)2025 年 11 月测评数据,全球仅 35% 的石笼网品牌同时满足产能达标、专利认证、售后响应及时三大核心…
docker命令提示插件
安装Docker命令提示插件
安装Docker命令提示插件可以提供命令补全与命令提示的功能。对于bash Shell,可以使用以下命令安装curl -L -o /etc/bash_completion.d/docker
对于zsh Shell,可以使用以下命令安装curl -L -o…
C语言和C++有什么区别
前言
C 语言和 C++ 是编程领域中密切相关但定位截然不同的语言,核心区别可概括为:C 是面向过程的结构化语言,专注于 “怎么做”;C++ 是 “面向过程 + 面向对象” 的多范式语言,兼容 C 的同时新增面向对象、泛型编…
详细介绍:通过Modbus TCP网关连接传统RS485电梯的配置详解
详细介绍:通过Modbus TCP网关连接传统RS485电梯的配置详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…
python多进程mulprocessing初始化传参进行pickle时不能序列化local局部变量
python多进程mulprocessing初始化传参进行pickle时不能序列化local局部变量报错代码:
可以运行的代码:点击查看代码
import multiprocessing
class calculate():"""AttributeError: Cant pickle loca…
Snipe-IT支持Oauth2登录
Snipe-IT支持Oauth2登录Snipe-IT默认支持的第3方登录为:SAML 和 Google Workspace。
不支持添加自定义Oauth2登录。
查了相关文档,https://snipe-it.readme.io/docs/saml并用casdoork作为idp测试了SAML并没有成功,加…
20232424 2025-2026-1 《网络与系统攻防技术》实验五实验报告
1.实验内容(1)选择一个DNS域名进行查询,获取如下信息:DNS注册人及联系方式、该域名对应IP地址、IP地址注册人及联系方式、IP地址所在国家、城市和具体地理位置。(2)尝试获取QQ中某一好友的IP地址,并查询获取该好…
软件工程——设计物品复活软件的思考
物品复活系统开发总结:一个软件工程学习过程的回顾与体会
在完成“物品复活系统”这一课程项目的过程中,我第一次较系统地体验了一个软件从需求分析、建模设计、编码实现到测试与文档交付的完整流程。对于一个功能并…
【C++STL :stack queue (二) 】stack 与 queue 的模拟实现与双端队列探秘 - 指南
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
做题随笔:P14521
Solution
题意
原题链接
感觉题意很难形式化,建议自己读一下。
大概是:给一个定根树,每个点有一个点权,每条边有一个可通过区间,从根开始,带着一个初值向下走,每到一个点把点权加在值上,对初值 \(x\) 的 \(q\)…
《重生之我成为世界顶级黑客》第五章:失败,失败,还是失败
《重生之我成为世界顶级黑客》第五章:失败,失败,还是失败继续肝,趁着有灵感,我也自己看看,感觉还行,凑合能看。晨光透过窗帘的缝隙,在键盘上投下一道细长的光斑。龙傲天深吸一口气,开始了对企鹅公司系统的测试…
Win11系统恢复经典的右键菜单方法(CMD快速执行)
Win11切换经典右键菜单:
reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
taskkill /f /im explorer.exe & start explorer.exe
Win11恢复回新右…
智能硬件利用小聆AI自定义MCP应用开发操作讲解
智能硬件利用小聆AI自定义MCP应用开发操作讲解2025-11-16 18:11
tlnshuju
阅读(0)
评论(0) 收藏
举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: …
C++ 中的 **普通筛、埃氏筛、线性筛**,它们都是求质数或判断质数的方法
普通筛、埃氏筛、线性筛,它们都是求质数或判断质数的方法,但原理和复杂度不同。
1️⃣ 普通筛(暴力判断质数)
思路:对每个数 i(2 ≤ i ≤ n),判断它是否能被小于它的数整除。
如果不能整除,则 i 是质数。复杂…