c# 获取当前时间

news/2025/11/16 18:38:03/文章来源:https://www.cnblogs.com/nanfei/p/19228697

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学习机是智商税吗? …

Linux问题

Linux问题 一、问题优先级 highest、high、medium、low(高、中、低) 二、常见问题 1、segmentation fault(core dumped) 含义:“程序发生了内存访问违规,已被系统终止,并生成了核心转储文件。”含义:当程序试图访…

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地址,并查询获取该好…

绝对值的性质

本文介绍绝对值的经典方法与例题。 绝对值的化简 若题目给定了数值的范围,那么这个代数式就是可以化简的。 例题 若 \(0<x<10\),求 \(||x-15|+20|+|x-9|\) 的值。 分析:题目中已有数值的范围,直接求出代数式…

软件工程——设计物品复活软件的思考

物品复活系统开发总结:一个软件工程学习过程的回顾与体会 在完成“物品复活系统”这一课程项目的过程中,我第一次较系统地体验了一个软件从需求分析、建模设计、编码实现到测试与文档交付的完整流程。对于一个功能并…

【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: …

选拔赛题解

神秘花 变种 \(01\) 背包,原题链接。 回忆普通的 \(01\) 背包,\(dp[j]\) 代表容量为 \(j\) 时所能得到的最大价值,这样操作的时间复杂度为 \(O(nV)\)(其中 \(n\) 代表物品数量,\(V\) 代表容量)。 但是在本题中,…

C++ 中的 **普通筛、埃氏筛、线性筛**,它们都是求质数或判断质数的方法

普通筛、埃氏筛、线性筛,它们都是求质数或判断质数的方法,但原理和复杂度不同。 1️⃣ 普通筛(暴力判断质数) 思路:对每个数 i(2 ≤ i ≤ n),判断它是否能被小于它的数整除。 如果不能整除,则 i 是质数。复杂…