js与C#进行时间戳转换

当我们需要在前端应用中与后端应用进行通信时,常常需要用到时间戳。因为各种编程语言对时间的处理方式不同,所以在不同编程语言之间进行通信时需要进行一些数据格式的转换。下面我会提供一些将 JS 时间戳转换成 C# 时间戳的方法和示例。

JS 时间戳转 C# 时间戳格式

JS 中获取时间戳的方式很简单,可以使用 Date.now()new Date().getTime()。这两个方法返回的都是毫秒级别的时间戳,如 1568204499816

在 C# 中,时间戳格式默认是从 1970 年 1 月 1 日 00:00:00(格林尼治标准时间)开始的秒数。因此,我们需要先将 JS 中的毫秒级别时间戳转换成秒级别的时间戳,再加上一个偏移量(Ticks),就可以得到 C# 中的时间戳了。

// 将 JS 时间戳转换成 C# 时间戳格式
public static long ConvertJsTimestampToCSharp(long timestamp)
{
    // 首先将毫秒级别时间戳转换成秒级别时间戳
    long result = timestamp / 1000;

    // 计算偏移量,C# 时间戳是从 1970 年 1 月 1 日 00:00:00 开始的秒数
    DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    long ticks = (DateTime.UtcNow - origin).Ticks;

    // 加上偏移量
    result += ticks / TimeSpan.TicksPerSecond;

    return result;
}

C# 时间戳格式转 JS 时间戳

同样,我们也可以将 C# 中的时间戳格式转换成 JS 中的时间戳格式。在 C# 中使用 DateTime.Ticks 获取当前时间的纳秒数,然后将其转换成秒级别的时间戳,最后再乘以 1000,得到毫秒级别的时间戳。

// 将 C# 时间戳格式转换成 JS 时间戳
public static long ConvertCSharpTimestampToJs(long timestamp)
{
    // 计算偏移量,C# 时间戳是从 1970 年 1 月 1 日 00:00:00 开始的秒数
    DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    long ticks = (DateTime.UtcNow - origin).Ticks;

    // 计算与当前时间的偏移量
    long result = timestamp - ticks / TimeSpan.TicksPerSecond;

    // 将秒级别的时间戳转换成毫秒级别的时间戳
    result *= 1000;

    return result;
}

下面是一个示例:我们有一个后台 API,返回当前时间的毫秒级别时间戳,我们需要在前端应用中将其转换成本地时间。

// 后台 API 返回的毫秒级别时间戳
var apiTimestamp = 1568204499816;

// 将毫秒级别的时间戳转换成 C# 时间戳格式
var csharpTimestamp = apiTimestamp / 1000 + Math.floor(62135596800000 / 1000)

// 将 C# 时间戳格式转换成 JS 时间戳格式
var localTimestamp = csharpTimestamp - (new Date().getTimezoneOffset() * 60) - (new Date(1970, 0, 1).getTime() / 1000);

// 转换本地时间
var localDate = new Date(localTimestamp * 1000);

// 输出本地时间
console.log(localDate.toLocaleString());

这个示例中,我们首先将后台 API 返回的毫秒级别时间戳转换成 C# 时间戳格式,然后在前端应用中将 C# 时间戳格式转换成 JS 时间戳格式,并使用 new Date() 将其转换成本地时间,最后输出日期时间字符串。

希望这些示例能够帮助到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js与C#进行时间戳转换 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • js跨域请求数据的3种常用的方法

    下面是详细讲解”js跨域请求数据的3种常用的方法”的攻略: 1. 跨域请求数据的背景 在Web开发的过程中,经常会遇到需要通过js代码来请求数据的情况。我们知道,由于同源策略(Same-origin policy)的限制,不同源(域)之间的js代码请求是受限制的。跨域请求数据就是在解决这个限制的前提下来实现的。 2. 跨域请求数据的3种常用的方法 2.1 J…

    JavaScript 2023年5月27日
    00
  • javascript打印大全(打印页面设置/打印预览代码)

    下面是详细讲解“javascript打印大全(打印页面设置/打印预览代码)”的攻略: 打印页面设置 打印页面设置主要是使用window.print()方法,这个方法用于打印当前页面。在使用window.print()前,我们常常需要设置一些打印页面参数,如纸张大小、边距、横向还是纵向等等。 设置纸张大小 @media print { @page { size…

    JavaScript 2023年5月19日
    00
  • VSCode开发TypeScript的实现步骤

    下面是VSCode开发TypeScript的实现步骤的完整攻略: 步骤一:安装VSCode和TypeScript插件 首先需要安装Visual Studio Code(以下简称VSCode),并在VSCode中安装TypeScript插件。可以在VSCode内部搜索TypeScript插件并安装,也可以在官网下载安装。 步骤二:创建TypeScript项目 …

    JavaScript 2023年6月10日
    00
  • javascript 按回车键相应按钮提交事件

    要使得在输入框中按下回车键能够提交表单,可以分为以下几个步骤: 找到输入框的 DOM 元素。 给输入框添加 onkeydown 事件监听器。 在事件监听器中判断按下的是否为回车键。 如果是回车键,则阻止默认行为(即防止换行),并执行相应的提交表单操作。 下面按照具体的方法和示例一步步进行讲解。 1. 找到输入框的 DOM 元素 首先,需要找到要对其添加事件监…

    JavaScript 2023年6月10日
    00
  • js跳转页面方法总结

    JS跳转页面方法总结 在Web开发中,JS跳转页面是非常常见的操作。下面我们来总结几种JS跳转页面的方法。 方法一:使用JavaScript中的location对象 可以通过JavaScript提供的location对象来实现跳转页面的功能。使用方法如下: // 跳转到指定URL location.href = "http://www.exampl…

    JavaScript 2023年6月11日
    00
  • flash与js通讯方法

    Flash与JS通讯是前端开发中经常遇到的问题,下面我来为大家详细讲解一下Flash与JS通讯方法的完整攻略。 Flash与JS通讯方法 Flash与JS之间的通讯一般通过两种方式,一种是Flash调用JS方法,另一种是JS调用Flash方法。下面分别详细讲解这两种方式。 Flash调用JS方法 Flash调用JS方法是通过ExternalInterface…

    JavaScript 2023年6月11日
    00
  • WinForm使用正则表达式提取内容的方法示例

    WinForm使用正则表达式提取内容的方法示例 什么是正则表达式 正则表达式(Regular Expression),是一种文本模式,用来匹配、替换一些文本。 WinForm中正则表达式的使用 在WinForm中,我们可以通过使用System.Text.RegularExpressions命名空间提供的正则表达式类进行文本的匹配和替换。 使用步骤如下: 引用…

    JavaScript 2023年6月10日
    00
  • 利用纯css实现缩略图悬停效果实例代码

    下面是利用纯CSS实现缩略图悬停效果的完整攻略。 确定页面布局 首先需要确定页面布局,可以使用HTML和CSS代码实现。通常情况下会使用一个列表来存放所有的缩略图,并设置每个列表项的宽度和高度,如下所示: <ul class="thumbnail-list"> <li> <a href="#&quo…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部