时间转换c#
简要
本篇文章主要介绍基于.net(c#)封装的时间帮助类。主要功能是将时间戳与DateTime类型相互转换。
1.其中包括将毫秒级时间戳(13位)、秒级时间戳(10位)转换为DateTime。
2.获取当前日期所在周的周一、周五时间。比如:今天是2018-11-8 周四 ,那么这周的周一2018-11-5则周五为2018-11-9。
讨论Q群:580749909
代码
public class DateHelper
{
private static DateTime _startTime;
private static DateTime _now;
private static DateTime _friday;
private static DateTime _monday; public static DateTime Now
{
get
{
if (_now == default(DateTime))
{
_now = DateTime.Now;
}
return _now;
}
} public static DateTime StartTime
{
get
{
if (_startTime == default(DateTime))
{
_startTime = new DateTime(Now.Year, Now.Month, Now.Day, 9, 30, 00);
}
return _startTime;
}
} /// <summary>
/// 获取当前时间所在周的星期五
/// </summary>
public static DateTime Friday
{
get
{
if (_friday == default(DateTime))
{
_friday = GetFriday();
}
return _friday;
}
} /// <summary>
/// 获取当前时间所在周的星期一
/// </summary>
public static DateTime Monday
{
get
{
if (_monday == default(DateTime))
{
_monday = GetMonday();
}
return _monday;
}
} /// <summary>
/// 计算本周起始日期(礼拜一的日期)
/// </summary>
/// <param name="someDate">该周中任意一天</param>
/// <returns>返回礼拜一日期,后面的具体时、分、秒和传入值相等</returns>
private static DateTime GetMonday()
{
DateTime someDate = Now;
int i = Now.DayOfWeek - DayOfWeek.Monday;
if (i == -1) i = 6;// i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。
TimeSpan ts = new TimeSpan(i, 0, 0, 0);
return someDate.Subtract(ts);
} /// <summary>
/// 计算本周结束日期(礼拜五的日期)
/// </summary>
/// <param name="someDate">该周中任意一天</param>
/// <returns>返回礼拜日日期,后面的具体时、分、秒和传入值相等</returns>
private static DateTime GetFriday()
{
DateTime someDate = Now;
int i = someDate.DayOfWeek - DayOfWeek.Friday;
if (i != 0) i = Math.Abs(i);// 因为枚举原因,Sunday排在最前,此时差值要取绝对值。
TimeSpan ts = new TimeSpan(i, 0, 0, 0);
return someDate.Add(ts);
} /// <summary>
/// 毫秒级时间戳(长度13位)
/// </summary>
/// <param name="dateTime"></param>
/// <returns>int32</returns>
public static int ToJSTimeStamp32(DateTime dateTime) {
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
int timeStamp = (int)(dateTime - startTime).TotalMilliseconds; // 相差毫秒数
return timeStamp;
} /// <summary>
/// 毫秒级时间戳(长度13位)
/// </summary>
/// <param name="dateTime"></param>
/// <returns>int64</returns>
public static long ToJSTimeStamp64(DateTime dateTime) {
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
long timeStamp = (long)(dateTime - startTime).TotalMilliseconds; // 相差毫秒数
return timeStamp;
} /// <summary>
/// 秒级时间戳(长度10位)
/// </summary>
/// <param name="dateTime"></param>
/// <returns>int32</returns>
public static int ToUnixTimeStamp32(DateTime dateTime)
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
int timeStamp = (int)(dateTime - startTime).TotalSeconds; // 相差秒数
return timeStamp;
} /// <summary>
/// 秒级时间戳(长度10位)
/// </summary>
/// <param name="dateTime"></param>
/// <returns>int64</returns>
public static long ToUnixTimeStamp64(DateTime dateTime) {
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
long timeStamp = (long)(dateTime - startTime).TotalSeconds; // 相差秒数
return timeStamp;
} /// <summary>
/// 将毫秒级时间戳(13)转换为时间
/// </summary>
/// <param name="unixTimeStamp"></param>
/// <returns></returns>
public static DateTime ToJSDateTime(long jsTimeStamp) {
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
DateTime dt = startTime.AddMilliseconds(jsTimeStamp);
return dt;
} /// <summary>
/// 将秒级时间戳(10位)转换为时间
/// </summary>
/// <param name="unixTimeStamp"></param>
/// <returns></returns>
public static DateTime ToUnixDateTime(long unixTimeStamp)
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
DateTime dt = startTime.AddSeconds(unixTimeStamp);
return dt;
}
}
时间转换c#的更多相关文章
- [jquery]将当前时间转换成yyyymmdd格式
如题: function nowtime(){//将当前时间转换成yyyymmdd格式 var mydate = new Date(); var str = "" + mydate ...
- MySQL 日期、时间转换函数
MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...
- java时间类型的转换/获取当前时间/将时间转换成String/将String转换成时间
对于我的脑子,我已经服气了...写了N遍的东西,就是记不住...既然记不住那就记下来... 利用java获取当前的时间(String类型,年-月-日 时:分:秒) //我要获取当前的日期 Date d ...
- inner join ,left join ,right join 以及java时间转换
1.inner join ,left join 与 right join (from 百度知道) 例表aaid adate1 a12 a23 a3表bbid bdate1 ...
- Python基本时间转换
时间转换 python中处理时间的时候,最常用的就是字符形式与时间戳之间的转换. 把最基本的转换在这里记下来 string -> timestamp import time import dat ...
- Date类型时间转换
/* 时间转换start */ public static void main(String args[]) { Date nowTime = new Date(); System.out.print ...
- unix环境C编程之日期时间转换
1.理清概念 1.1.日历时间: 含义:国际标准时间1970年1月1日00:00:00以来经过的秒数. 数据类型:time_t.实际上是long的别名. 1.2.tm结构时间: 含义:结构 ...
- php时间转换unix时间戳
本文介绍了php编程中unix时间戳转换的小例子,有关php时间转换.php时间戳的实例代码,有需要的朋友参考下. 第一部分,php 时间转换unix 时间戳实现代码. 复制代码代码示例: <? ...
- Js 处理将时间转换 “年-月-日”
将时间 \/Date(1432828800000+0800)\/" 转换成:“年-月-日” //时间转换function ChangeDateFormat(val) { if (v ...
- Java 时间转换问题总结
这几天开发中遇到时间转换出错的问题,特总结如下: ========================================================================= ...
随机推荐
- PHP atan2() 函数
实例 通过 atan2() 函数返回两个变量的反正切: <?phpecho(atan2(0.50,0.50) . "<br>");echo(atan2(-0.50 ...
- 剑指 Offer 53 - II. 0~n-1中缺失的数字
本题 题目链接 题目描述 我的题解 二分法 思路分析 排序数组中的搜索问题,首先想到二分法 当nums[center] > center 时,缺少的数在左区间 当nums[center] = c ...
- Java异步之《我call(),Future在哪里》
我们大家都知道,在 Java 中创建线程主要有三种方式: 继承 Thread 类: 实现 Runnable 接口: 实现 Callable 接口. 而后两者的区别在于 Callable 接口中的 ca ...
- Linux下运行windows 系统下编辑的Python脚本显示“: 没有那个文件或目录”的过程及解决方案
今天在 linux 系统下执行一windows下编辑的python脚本,提示(:没有那个文件或目录)英文提示:(:No such file of directory)如下: 查看文件的权限发现并没有问 ...
- Armv8-A Memory management
本文介绍Armv8-A的内存管理.内存管理指的是在系统中,内存访问是如何实现的. 使用内存管理机制,可以让每个应用之间的内存地址分离,即sandbox application,也可以让多个在物理内存上 ...
- Tarjan 做题总结
这两天Tarjan复习完后把题做了做.洛谷题单<图的连通性>已经做得差不多了.大部分是Tarjan的题,所以写一篇小总结. T1 [模板] 缩点 不多bb.我已经写过关于Tarjan模板的 ...
- Idea Live Temlpates 自定义代码
Idea Live Temlpates 自定义代码 目的 - 加快常用代码的书写 使用## 打开Settings 快捷键Ctrl+Alt+S 选中Live Templates 选中temlpates ...
- Azure Load Balancer(二) 基于内部的负载均衡来转发为访问请求
一,引言 上一节,我们使用 Azure Load Balancer 类型为外部的,来转发我们的 Web 服务.今天我们看看另一种类型为 “Internal” 的 Azure Load Balancer ...
- 为什么overflow:hidden能达到清除浮动的目的?
1. 什么是浮动 <精通CSS>(第3版)关于浮动的描述: 浮动盒子可以向左或向右移动,直到其外边沿接触包含块的外边沿,或接触另一个浮动盒子的外边沿. 浮动盒子也会脱离常规文档流,因此常规 ...
- python_appium使用原理
一. appium介绍 Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试. 它使用WebDriver协议驱动iOS,Android和Windows应用程序. 多平台支持: ...