简要

本篇文章主要介绍基于.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#的更多相关文章

  1. [jquery]将当前时间转换成yyyymmdd格式

    如题: function nowtime(){//将当前时间转换成yyyymmdd格式 var mydate = new Date(); var str = "" + mydate ...

  2. MySQL 日期、时间转换函数

    MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...

  3. java时间类型的转换/获取当前时间/将时间转换成String/将String转换成时间

    对于我的脑子,我已经服气了...写了N遍的东西,就是记不住...既然记不住那就记下来... 利用java获取当前的时间(String类型,年-月-日 时:分:秒) //我要获取当前的日期 Date d ...

  4. inner join ,left join ,right join 以及java时间转换

    1.inner join ,left join 与 right join (from 百度知道) 例表aaid adate1    a12    a23    a3表bbid  bdate1     ...

  5. Python基本时间转换

    时间转换 python中处理时间的时候,最常用的就是字符形式与时间戳之间的转换. 把最基本的转换在这里记下来 string -> timestamp import time import dat ...

  6. Date类型时间转换

    /* 时间转换start */ public static void main(String args[]) { Date nowTime = new Date(); System.out.print ...

  7. unix环境C编程之日期时间转换

    1.理清概念 1.1.日历时间:   含义:国际标准时间1970年1月1日00:00:00以来经过的秒数.   数据类型:time_t.实际上是long的别名. 1.2.tm结构时间:   含义:结构 ...

  8. php时间转换unix时间戳

    本文介绍了php编程中unix时间戳转换的小例子,有关php时间转换.php时间戳的实例代码,有需要的朋友参考下. 第一部分,php 时间转换unix 时间戳实现代码. 复制代码代码示例: <? ...

  9. Js 处理将时间转换 “年-月-日”

    将时间  \/Date(1432828800000+0800)\/"  转换成:“年-月-日” //时间转换function ChangeDateFormat(val) {    if (v ...

  10. Java 时间转换问题总结

    这几天开发中遇到时间转换出错的问题,特总结如下:   ========================================================================= ...

随机推荐

  1. Redis 内存压缩原理

    Redis 无疑是一个大量消耗内存的数据库,因此 Redis 引入了一些设计巧妙的数据结构进行内存压缩来减轻负担.ziplist.quicklist 以及 intset 是其中最常用最重要的压缩存储结 ...

  2. 【CSP2019】括号树 题解(递推+链表)

    前言:抽时间做了做这道题,把学长送退役的题. ----------------- 题目链接 题目大意:定义$()$是合法括号串.如果$A,B$是合法括号串,那么$(AB),AB$为合法括号串.现给定根 ...

  3. tp3.2 新增邮件类

    1.新建方法   调用发送邮件,我的目录在/admin下 2.新增邮件方法 类的发送配置功能 文件地址: 网站根目录\项目目录\Admin\Common\ 文件 名   :function.php   ...

  4. doc属性__module__属性__del__(垃圾回收)__call__方法

    __module__属性: 析构函数:del 是python的垃圾回收方法,当实例运行完的时候触发,回收资源 __call__

  5. Python入门看这些,最详细学习书籍推荐

    随着人工智能以及脚本开发火热,Python已经被推上一个非常火热的巅峰! 那么,想要学习Python却又不知道从哪里开始的朋友,看这里呀~ Python在整个编程语言来说,是比较容易上手,而且“见效” ...

  6. “随手记”开发记录day06

    今天还是继续完成统计页面,完成的按钮有支出大头和收入来源的饼状图, 由于之前写过相关的代码,这次的任务对我们来说还挺简单的,没有出现什么太大的问题,

  7. python爬取高匿代理IP(再也不用担心会进小黑屋了)

    为什么要用代理IP 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人 ...

  8. JS学习第三天

    运算符: 赋值运算符 “=” ,将“=”右边的值赋值给左边 比较运算符 “>   <   >=  <=   ==   !=   ===”,  ==比较两边内容是否一致      ...

  9. java 打印流与commons-IO

    一 打印流 1.打印流的概述 打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式. 打印流根据流的分类: 字节打印流 PrintStream 字符打印流 PrintWriter 方法: ...

  10. noip复习——快速幂

    \(a ^ n \bmod p\) \(a, p, n \leq 10^9\) 最普通的二进制拆分 #define LL long long LL qpow(LL a, LL n, LL p) { L ...