[开发笔记]-unix时间戳、GMT时间与datetime类型时间之前的转换
前段时间项目中涉及到了MySql和MsSql数据类型之间的转换,最近又在研究新浪微博的API,涉及到了带有时区的GMT时间类型的转换,所以,特记录于此,以备日后查询。
一:UNIX时间戳与datetime时间之间的转换
1. 将Unix时间戳转换为DateTime类型时间
方法一:

/// <summary>
/// 将Unix时间戳转换为DateTime类型时间
/// </summary>
/// http://www.cnblogs.com/babycool
/// <param name="d"></param>
/// <returns></returns>
public static DateTime ConvertIntToDateTime(double d)
{
System.DateTime time = System.DateTime.MinValue;
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
time = startTime.AddSeconds(d);
return time;
}

方法二:

/// <summary>
/// 将Unix时间戳转换为DateTime类型时间
/// </summary>
/// http://www.cnblogs.com/babycool
/// <param name="time"></param>
/// <returns></returns>
static DateTime ConvIntToDateTime(long time)
{
DateTime timeStamp = new DateTime(1970, 1, 1); //得到1970年的时间戳
long t = (time + 8 * 60 * 60) * 10000000 + timeStamp.Ticks;
DateTime dt = new DateTime(t);
return dt;
}

2.在SQL Server Management Studio 中查询并转换:
--将Unix时间戳转换为dateline类型
select top 10 DATEADD(SS,regdate,'1970-01-01 00:00:00') from dbo.uc_members
3. 将DateTime时间格式转换为Unix时间戳格式

/// <summary>
/// 将DateTime时间格式转换为Unix时间戳格式
/// </summary>
/// http://www.cnblogs.com/babycool
/// <param name="time"></param>
/// <returns></returns>
public static double ConvertDateTimeToInt(System.DateTime time)
{
double intResult = 0;
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
intResult = (time - startTime).TotalSeconds;
return intResult;
}

二:将新浪微博中带有时区的GMT时间转换为DateTime

/// <summary>
/// 将新浪微博中带有时区的GMT时间转换为DateTime
/// </summary>
/// http://www.cnblogs.com/babycool
/// <param name="dateString">微博时间字符串</param>
/// <returns>DateTime</returns>
public static DateTime ParseUTCDate(string dateString)
{
System.Globalization.CultureInfo provider = System.Globalization.CultureInfo.InvariantCulture; DateTime dt = DateTime.ParseExact(dateString, "ddd MMM dd HH:mm:ss zzz yyyy", provider); return dt;
}

三:转换效果:

相应代码:

//新浪微博返回的时间是带有时区的GMT时间,转换为datetime类型时间格式:
// GMT时间: Tue May 31 17:46:55 +0800 2011
Response.Write("将GMT时间转换为datetime类型时间:");
Response.Write(ParseUTCDate("Tue May 31 17:46:55 +0800 2011").ToString());
Response.Write("<br/>");
//UNIX时间戳 1176686120
Response.Write("将UNIX时间戳转换为datetime类型时间:");
Response.Write(ConvertIntToDateTime(1176686120));
Response.Write("<br/>");
Response.Write("方法二:");
Response.Write(ConvIntToDateTime(1176686120));
Response.Write("<br/>");
Response.Write("将datetime类型时间转换为UNIX时间戳:");
Response.Write(ConvertDateTimeToInt(ConvertIntToDateTime(1176686120)));
Response.Write("<br/>");

[开发笔记]-unix时间戳、GMT时间与datetime类型时间之前的转换的更多相关文章
- Java开发笔记(四十四)本地日期时间与字符串的互相转换
之前介绍Calendar的时候,提到日历实例无法直接输出格式化后的时间字符串,必须先把Calendar类型转换成Date类型,再通过格式化工具SimpleDateFormat获得字符串.而日期时间的格 ...
- Java开发笔记(二十七)数值包装类型
方法的出现缘起优化代码结构,但它的意义并不局限于此,正因为有了方法定义,编程语言才更像一门能解决实际问题的工具,而不仅仅是只能用于加减乘除的计算器.在数学的发展过程中,为了表示四则运算,人们创造了加减 ...
- Java开发笔记(三十三)字符包装类型
正如整型int有对应的包装整型Integer那样,字符型char也有对应的包装字符型Character.初始化字符包装变量也有三种方式,分别是:直接用等号赋值.调用包装类型的valueOf方法.使用关 ...
- 利用UNIX时间戳来计算ASP的在线时间
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%><!DOCTYPE html PUBLIC "-/ ...
- 开发工具-Unix时间戳转换
更新日志 2022年6月10日 初始化链接. https://toolb.cn/timestamp
- iOS开发笔记系列-基础3(多态、动态类型和动态绑定)
多态:相同的名称,不同的类 使不同的类共享相同方法名称的能力成为多态.它让你可以开发一组类,这组类中的每一个类都能响应相同的方法名.每个类的定义都封装了响应特定方法所需要的代码,这使得它独立于其他的类 ...
- Java开发笔记(五)数值变量的类型
如今个人电脑的配置越来越高,内存和硬盘的容量大小都是以G为单位,而1G=1024M=1024*1024K=1024*1024*1024字节.不过在PC的早期发展阶段,电脑的存储空间却是十分有限的,像2 ...
- C# DateTime时间格式转换为Unix时间戳格式
double ntime=dateTimeToUnixTimestamp(DateTime.Now); long g1 = GetUnixTimestamp(); long g2 = ConvertD ...
- Unix时间戳与C# DateTime时间类型互换
Unix时间戳最小单位是秒,开始时间为格林威治标准时间1970-01-01 00:00:00ConvertIntDateTime方法的基本思路是通过获取本地时区表示Unixk开始时间,加上Unix时间 ...
随机推荐
- 理解 Hanoi 汉诺塔非递归算法
汉诺塔介绍: 汉诺塔(港台:河内塔)是根据一个传说形成的数学问题: 最早发明这个问题的人是法国数学家爱德华·卢卡斯. 传说越南河内某间寺院有三根银棒,上串 64 个金盘.寺院里的僧侣依照一个古老的预言 ...
- Jmeter压力测试笔记(6)性能调测-压力并发-模拟生产环境数据
问题原因找到了,那就好办了. 找到阿里云技术人员,让他们强行给我们上架了一个共享代理模式的Redis. 并重新进行压力测试. 哦豁~ 开心,压力测试顺利,异常率大大降低实际为: 数据库DBA反馈,数据 ...
- 用curl调用https接口
今天在windows下用curl类获取微信token一直返回false,查阅资料后,发现是https证书的锅,在curl类中加上这两条,问题瞬间解决. curl_setopt($ch, CURLOPT ...
- 03使用Want Weapp进行路由跳转
因为这里使用的是第三方库,所以你要引入哈. 在app.json中引入哈. "usingComponents": { "van-cell": "@van ...
- python通过pymysql实现数据库的增删改查
今天实现了python对于数据库的增删改查工作: 具体的每一步的数据库的增删盖茶自己都实验过了. 掌握了基本的数据库操作语言.然后就是对于tuple()的认识. 以及对于查询语句中的:fetchone ...
- Linux 磁盘管理篇,设备文件
IDE硬盘 /dev/hd[a-d] SCSI/SATA/USB硬盘 /dev/sd[a-p] U盘 /dev/sd[a-p] ...
- 拓扑排序入门详解&&Educational Codeforces Round 72 (Rated for Div. 2)-----D
https://codeforces.com/contest/1217 D:给定一个有向图,给图染色,使图中的环不只由一种颜色构成,输出每一条边的颜色 不成环的边全部用1染色 ps:最后输出需要注意, ...
- Java编程最差实践常见问题详细说明(1)转
Java编程最差实践常见问题详细说明(1)转 原文地址:http://www.odi.ch/prog/design/newbies.php 每天在写Java程序, 其实里面有一些细节大家可能没 ...
- Mac Jenkins+fastlane 简单几步实现iOS自动化打包发布 + jenkins节点设置
最近在使用jenkins 实现ios自动化打包发布蒲公英过程实践遇到了一些坑,特意记录下来方便有需要的人. 进入正题: 一.安装Jenkins 1.Mac上安装Jenkins 遇到到坑 因为 Jenk ...
- vue axios post请求下载文件,后台springmvc完整代码
注意请求时要设置responseType,不加会中文乱码,被这个坑困扰了大半天... axios post请求: download(index,row){ var ts = ...