时间戳如何转换为日期格式?MySQL、C#、JS时间戳转换方法
番茄系统家园 · 2022-03-04 08:12:40
时间戳如何转换为日期格式?当初把日期格式转换为时间戳是为了更好的记录数据,现在如果想要看看当初时间戳被转换的时间,可以按照以下方法来实现,详情请阅读下文MySQL、C#、JS时间戳转换方法。

MySQL、C#、JS时间戳转换方法:
一、MySQL戳转换方法:
1、原理:
时间戳的原理是把时间格式转为十进制格式,这样就方便时间的计算,如:1377216000000 转化后是 2013年08月23日 。
2、步骤:
(1) 创建 DateUtilsl类。
(2) 输入代码:
- 01 importjava.text.ParseException;
- 02 importjava.text.SimpleDateFormat;
- 03 importjava.util.Date;
- 04 /*
- 05 * @author Msquirrel
- 06 */
- 07 public class DateUtils {
- 08 privateSimpleDateFormat sf = null;
- 09 /获取系统时间 格式为:"yyyy/MM/dd "/
- 10 public static String getCurrentDate() {
- 11 Date d = newDate();
- 12 sf = newSimpleDateFormat("yyyy年MM月dd日");
- 13 returnsf.format(d);
- 14 }
- 15 /时间戳转换成字符窜/
- 16 public static String getDateToString(long time) {
- 17 Date d = newDate(time);
- 18 sf = newSimpleDateFormat("yyyy年MM月dd日");
- 19 returnsf.format(d);
- 20 }
- 21 /将字符串转为时间戳/
- 22 public static long getStringToDate(String time) {
- 23 sdf = newSimpleDateFormat("yyyy年MM月dd日");
- 24 Date date = newDate();
- 25 try{
- 26 date = sdf.parse(time);
- 27 } catch(ParseException e) {
- 28 // TODO Auto-generated catch block
- 29 e.printStackTrace();
- 30 }
- 31 returndate.getTime();
- 32 }
复制代码
importjava.text.ParseException; importjava.text.SimpleDateFormat; importjava.util.Date; / * @author Msquirrel / public class DateUtils { privateSimpleDateFormat sf = null; /获取系统时间 格式为:"yyyy/MM/dd "/ public static String getCurrentDate() { Date d = newDate(); sf = newSimpleDateFormat("yyyy年MM月dd日"); returnsf.format(d); } /时间戳转换成字符窜/ public static String getDateToString(long time) { Date d = newDate(time); sf = newSimpleDateFormat("yyyy年MM月dd日"); returnsf.format(d); } /将字符串转为时间戳/ public static long getStringToDate(String time) { sdf = newSimpleDateFormat("yyyy年MM月dd日"); Date date = newDate(); try{ date = sdf.parse(time); } catch(ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } returndate.getTime(); }
3、在对应使用的地方调用:
- 01 DateUtils.getCurrentDate(); //获取系统当前时间
- 02 DateUtils.getDateToString(时间戳); //时间戳转为时间格式
- 03 DateUtils.getStringToDate("时间格式");//时间格式转为时间戳.
复制代码
DateUtils.getCurrentDate(); //获取系统当前时间 DateUtils.getDateToString(时间戳); //时间戳转为时间格式 DateUtils.getStringToDate("时间格式");//时间格式转为时间戳.
二、C#时间戳转换方法:
**** C#的代码(加入了闰年):
注:.Net的DateTime对象返回的是100纳秒的时间单位,年份是从AD1开始计算的。
- 01 class Program
- 02 {
- 03 // 定义必须变量
- 04 const int _1M = 60; // 分钟
- 05 const int _1H = _1M * 60; // 小时
- 06 const int _1D = _1H * 24; // 天
- 07 const long _1Y = _1D * 365; // 年(非闰年)
- 08 const long _YS = _1Y * 3 + _1D * 366; // 一个闰年年度
- 09 const long _30D = _1D * 30; // 30天(月)
- 10 const long _31D = _1D * 31; // 31天(月)
- 11 const long _28D = _1D * 28; // 28天(月)
- 12 const long _29D = _1D * 29; // 29天(月)
- 13 long[] NormalYear = { _31D, _28D, _31D, _30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D }; // 年
- 14 long[] LeapYear = { _31D, _29D, _31D, _30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D }; // 闰年
- 15 static void Main(string[] args)
- 16 {
- 17 Program P = new Program();
- 18 System.Console.WriteLine(P.getDate(P.getTimeSpame()));
- 19 DateTime T = DateTime.Now;
- 20 System.Console.WriteLine(P.getTimeSpame() + " : " + P.getTimeSpame(T.Year, T.Month, T.Day, T.Hour, T.Minute, T.Second));
- 21 System.Console.ReadKey();
- 22 }
- 23 private Program() {}
- 24 public string getDate(long TimeSp)
- 25 {
- 26 // 年,月,天,小时,分钟,秒
- 27 int year = 0;
- 28 int month = 0;
- 29 int day = 0;
- 30 int hour = 0;
- 31 int minute = 0;
- 32 int second = 0;
- 33 //DateTime now = DateTime.Now;
- 34 //long TimeSp = getTimeSpame(); // 当前时间戳
- 35 // 年
- 36 int _y1 = (int)(TimeSp / _YS); // 获得按年度得到的年度
- 37 TimeSp -= _YS * _y1; // 计算剩余秒
- 38 int _y2 = (int)(TimeSp / _1Y); // 剩余年
- 39 TimeSp -= _1Y * _y2;
- 40 year = _y1 * 4 + _y2 + 1970;
- 41 // 月
- 42 long[] YearArr = isLeapYear(year) ? LeapYear : NormalYear; // 获取年的月度表
- 43 month = 1; // 从1月开始计算
- 44 for (int i = 0; i
- 45 {
- 46 if (TimeSp - YearArr[i]
- 47 ++month;
- 48 TimeSp -= YearArr[i];
- 49 }
- 50 // 天
- 51 day = (int)(TimeSp / _1D);
- 52 TimeSp -= day * _1D;
- 53 // 时
- 54 hour = (int)(TimeSp / _1H);
- 55 TimeSp -= hour * _1H;
- 56 // 分
- 57 minute = (int)(TimeSp / _1M);
- 58 // 秒
- 59 second = (int)(TimeSp % _1M);
- 60 string DateStr = year + "年" + month + "月" + day + "日 " + hour + "点" + minute + "分" + second + "秒";
- 61 return DateStr;
- 62 }
- 63 // 判断是否闰年
- 64 private bool isLeapYear(int year)
- 65 {
- 66 return (year % 4 == 0 ? true : false);
- 67 }
- 68 // 获取当前时间戳 按1970年开始计算,精度为秒!
- 69 private long getTimeSpame()
- 70 {
- 71 DateTime _Now = DateTime.Now;
- 72 DateTime _1970 = new DateTime(1970, 1, 1);
- 73 long _Sp = (_Now.Ticks - _1970.Ticks) / 10000000;
- 74 return _Sp;
- 75 }
- 76 // 按既定格式把时间转成成时间戳
- 77 private long getTimeSpame(int Year, int Month, int Day, int Hour, int Minute, int Second)
- 78 {
- 79 long val = 0;
- 80 val += Second; // 秒
- 81 val += Minute * _1M; // 分钟
- 82 val += Hour * _1H; // 小时
- 83 val += Day * _1D; // 天
- 84 long[] YearArr = isLeapYear(Year) ? LeapYear : NormalYear;
- 85 for (int i = 0; i
- 86 {
- 87 val += YearArr[i];
- 88 }
- 89 Year -= 1970;
- 90 val += (Year / 4) * _YS;
- 91 Year -= (int)(Year / 4) * 4;
- 92 val += Year * _1Y;
- 93 return val;
- 94 }
- 95 }
复制代码
class Program { // 定义必须变量 const int _1M = 60; // 分钟 const int _1H = _1M * 60; // 小时 const int _1D = _1H * 24; // 天 const long _1Y = _1D * 365; // 年(非闰年) const long _YS = _1Y * 3 + _1D * 366; // 一个闰年年度 const long _30D = _1D * 30; // 30天(月) const long _31D = _1D * 31; // 31天(月) const long _28D = _1D * 28; // 28天(月) const long _29D = _1D * 29; // 29天(月) long[] NormalYear = { _31D, _28D, _31D, _30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D }; // 年 long[] LeapYear = { _31D, _29D, _31D, _30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D }; // 闰年 static void Main(string[] args) { Program P = new Program(); System.Console.WriteLine(P.getDate(P.getTimeSpame())); DateTime T = DateTime.Now; System.Console.WriteLine(P.getTimeSpame() + " : " + P.getTimeSpame(T.Year, T.Month, T.Day, T.Hour, T.Minute, T.Second)); System.Console.ReadKey(); } private Program() {} public string getDate(long TimeSp) { // 年,月,天,小时,分钟,秒 int year = 0; int month = 0; int day = 0; int hour = 0; int minute = 0; int second = 0; //DateTime now = DateTime.Now; //long TimeSp = getTimeSpame(); // 当前时间戳 // 年 int _y1 = (int)(TimeSp / _YS); // 获得按年度得到的年度 TimeSp -= _YS * _y1; // 计算剩余秒 int _y2 = (int)(TimeSp / _1Y); // 剩余年 TimeSp -= _1Y * _y2; year = _y1 * 4 + _y2 + 1970; // 月 long[] YearArr = isLeapYear(year) ? LeapYear : NormalYear; // 获取年的月度表 month = 1; // 从1月开始计算 for (int i = 0; i
三、JS时间戳转换方法:
**** 代码如下:
- 01 // 定义常量
- 02 var _1M = 60; // 分钟
- 03 var _1H = _1M * 60; // 小时
- 04 var _1D = _1H * 24; // 天
- 05 var _1Y = _1D * 365; // 年(非闰年)
- 06 var _YS = _1Y * 3 + _1D * 366; // 一个闰年年度
- 07 var _30D = _1D * 30; // 30天(月)
- 08 var _31D = _1D * 31; // 31天(月)
- 09 var _28D = _1D * 28; // 28天(月)
- 10 var _29D = _1D * 29; // 29天(月)
- 11 var NormalYear = [ _31D, _28D, _31D, _30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D ]; // 年
- 12 var LeapYear = [ _31D, _29D, _31D, _30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D ]; // 闰年
- 13 var Now = new Date();
- 14 TimeSp = Now.getTime() / 1000;
- 15 //alert(Now.getTimezoneOffset()); // 时区差
- 16 TimeSp += -1 * Now.getTimezoneOffset() * _1M; // 修正UTC
- 17 // 年,月,天,小时,分钟,秒
- 18 var year = month = day = hour = minute = second = 0;
- 19 // 年
- 20 var _y1 = parseInt(TimeSp / _YS); // 获得按年度得到的年度
- 21 TimeSp -= _YS * _y1; // 计算剩余秒
- 22 var _y2 = parseInt(TimeSp / _1Y); // 剩余年
- 23 TimeSp -= _1Y * _y2;
- 24 year = _y1 * 4 + _y2 + 1970;
- 25 // 月
- 26 var YearArr = year % 4 == 0 ? LeapYear : NormalYear; // 获取年的月度表
- 27 month = 1; // 从1月开始计算
- 28 for (i=0; i
- 29 {
- 30 if (TimeSp - YearArr[i]
- 31 ++month;
- 32 TimeSp -= YearArr[i];
- 33 }
- 34 // 天
- 35 day = parseInt(TimeSp / _1D);
- 36 TimeSp -= day * _1D;
- 37 // 时
- 38 hour = parseInt(TimeSp / _1H);
- 39 TimeSp -= hour * _1H;
- 40 // 分
- 41 minute = parseInt(TimeSp / _1M);
- 42 // 秒
- 43 second = parseInt(TimeSp % _1M);
- 44 var DateStr = year + "年" + month + "月" + day + "日 " + hour + "点" + minute + "分" + second + "秒";
- 45 alert(DateStr);
复制代码
// 定义常量 var _1M = 60; // 分钟 var _1H = _1M * 60; // 小时 var _1D = _1H * 24; // 天
var _1Y = _1D * 365; // 年(非闰年) var _YS = _1Y * 3 + _1D * 366; // 一个闰年年度 var
_30D = _1D * 30; // 30天(月) var _31D = _1D * 31; // 31天(月) var _28D = _1D * 28;
// 28天(月) var _29D = _1D * 29; // 29天(月) var NormalYear = [ _31D, _28D, _31D,
_30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D ]; // 年 var LeapYear = [
_31D, _29D, _31D, _30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D ]; //
闰年 var Now = new Date(); TimeSp = Now.getTime() / 1000;
//alert(Now.getTimezoneOffset()); // 时区差 TimeSp += -1 *
Now.getTimezoneOffset() * _1M; // 修正UTC // 年,月,天,小时,分钟,秒 var year = month =
day = hour = minute = second = 0; // 年 var _y1 = parseInt(TimeSp / _YS); //
获得按年度得到的年度 TimeSp -= _YS * _y1; // 计算剩余秒 var _y2 = parseInt(TimeSp / _1Y); //
剩余年 TimeSp -= _1Y * _y2; year = _y1 * 4 + _y2 + 1970; // 月 var YearArr = year
% 4 == 0 ? LeapYear : NormalYear; // 获取年的月度表 month = 1; // 从1月开始计算 for (i=0;
i 注:
JS的Date对象的getTime()方法返回的是UTC的时间戳,可以使用getTimezoneOffset()的方法来返回与UTC时差的分钟。 **** 以上代码便是MySQL、C#、JS的时间戳转换方法介绍,因为闰年的存在,代码的使用前请阅读一下。

