将 javascript 中的 timestamp(时间戳) 转 c# 的 datetime类型

摘要:
我相信很多人在工作中都会遇到将时间戳转换为datetime类型的需要,尤其是在网站开发中,有时需要将从前端传递的时间戳转换成datetime类型,在转换过程中,我们找到了需要注意的地方。

  相信很多人在工作中都会遇到需要将 timestamp(时间戳) 转换为 datetime 类型,特别是做网站开发的时候,有时候需要将前端传递过来的 timestamp 转为 datetime 类型,而在转的过程中发现了需要注意的地方。

  首先先说说在 javascript 中产生 timestamp 的方式,一般有以下几种方式:

    var date = new Date();
    
    //获取timestamp
    var timestamp1 = date.getTime();
    var timestamp2 = Date.now();
    var timestamp3 = date.valueOf();
    
    //输出当前时间
    console.info("date.toString:",date.toString());
    console.info("date.toLocaleString:",date.toLocaleString());
    
    //输出时间戳
    console.info("date.getTime:",timestamp1);
    console.info("date.now:",timestamp2);
    console.info("date.valueOf:",timestamp3);

  

  我当前结果显示:

将 javascript 中的 timestamp(时间戳) 转 c# 的 datetime类型第1张

  

  然后在c#中需要将时间戳转换为timestamp(至于前端怎么传递数据到后端,不在此章范围):

    string timestampStr = "1481038051980";
    long timestamp = long.Parse(timestampStr);
    DateTime dt = new DateTime(1970,1,1,0,0,0).AddMilliseconds(timestamp);
    Console.WriteLine(dt);

    Console.ReadKey();

  然而,神奇的事情发生了,显示结果如下:

  将 javascript 中的 timestamp(时间戳) 转 c# 的 datetime类型第2张

  不对啊,上面 js 产生的时间戳的时间是 2016/12/6 下午11:27:31 ( Tue Dec 06 2016 23:27:31 ) ,也就是说日期显示是对的,但时间不对, 一直在纠结,甚至怀疑是不是记错 js 时间戳的生成方式了,于是查文档,没错啊,那是怎么回事呢?最后突然想到,会不会和时区有关,于是加了一行代码:

    string timestampStr = "1481038051980";
    long timestamp = long.Parse(timestampStr);
    DateTime dt = new     DateTime(1970,1,1,0,0,0).AddMilliseconds(timestamp);
    Console.WriteLine(dt);
    Console.WriteLine(dt.ToLocalTime());

  是的,只需要调用 ToLocalTime() 方法,结果如下:

将 javascript 中的 timestamp(时间戳) 转 c# 的 datetime类型第3张

  

  就是这么简单,仅仅是个时区的问题

免责声明:文章转载自《将 javascript 中的 timestamp(时间戳) 转 c# 的 datetime类型》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python基础篇(文件操作)在WPF中如何使用RelativeSource绑定下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python解析Pcap包类源码学习

0x1、前言 ​ 在现场取证遇到分析流量包的情况会比较少,虽然流量类设备原理是把数据都抓出来进行解析,很大一定程度上已经把人可以做的事情交给了机器自动完成。 ​ 可用于PCAP包分析的软件比如科来,Wireshark都是很好用的分析软件,找Pcap解析的编程类代码时发现已经有很多大佬写过Python脚本辅助解析Pcap,也有提取将Pcap信息以界面形式展示...

引用静态资源时加上时间戳,处理浏览器缓存问题

项目问题 更新上传CSS文件或JS文件后,安卓手机浏览器刷新,页面样式没有改变 问题解决 利用PHP语言,在引用静态资源时加上时间戳 1 <link rel="stylesheet" type="text/css" href="http://t.zoukankan.com/css/style.css?time=<?php echo date("...

WebSocket详解

WebSocket 出现前 构建网络应用的过程中,我们经常需要与服务器进行持续的通讯以保持双方信息的同步。通常这种持久通讯在不刷新页面的情况下进行,消耗一定的内存资源常驻后台,并且对于用户不可见。在 WebSocket 出现之前,我们有以下解决方案: 传统轮询(Traditional Polling) 当前Web应用中较常见的一种持续通信方式,通常采取 s...

hive 时间戳函数之unix_timestamp,from_unixtime

一. 日期>>>>时间戳1.unix_timestamp() 获取当前时间戳 例如:select unix_timestamp() --1565858389 2.unix_timestamp(string timestame) 输入的时间戳格式必须为'yyyy-MM-dd HH:mm:ss',如不符合则返回null 例如...

UNIX时间戳及日期的转换与计算

UNIX时间戳是保存日期和时间的一种紧凑简洁的方法,是大多数UNIX系统中保存当前日期和时间的一种方法,也是在大多数计算机语言中表示日期和时间的一种标准格式。以32位整数表示格林威治标准时间,例如,使用证书11230499325表示当前时间的时间戳。UNIX时间戳是从1970年1月1日零点(UTC/GMT的午夜)开始起到当前时间所经过的秒数。1970年1月...

Java:String和Date、Timestamp之间的转换

一、String与Date(java.util.Date)互转      1.1 String -> Date String dateStr = "2010/05/04 12:34:23";            Date date = new Date();            //注意format的格式要与日期String的格式相匹配  ...