时间戳如何转换为日期格式?MySQL、C#、JS时间戳转换方法

番茄系统家园 · 2022-03-04 08:12:40


时间戳如何转换为日期格式?当初把日期格式转换为时间戳是为了更好的记录数据,现在如果想要看看当初时间戳被转换的时间,可以按照以下方法来实现,详情请阅读下文MySQL、C#、JS时间戳转换方法。

时间戳如何转换为日期格式?MySQL、C#、JS时间戳转换方法

MySQL、C#、JS时间戳转换方法:

一、MySQL戳转换方法:

1、原理:

时间戳的原理是把时间格式转为十进制格式,这样就方便时间的计算,如:1377216000000 转化后是 2013年08月23日 。

2、步骤:

(1) 创建 DateUtilsl类。

(2) 输入代码:

  1. 01 importjava.text.ParseException;
  2. 02 importjava.text.SimpleDateFormat;
  3. 03 importjava.util.Date;
  4. 04 /*
  5. 05 * @author Msquirrel
  6. 06 */
  7. 07 public class DateUtils {
  8. 08 privateSimpleDateFormat sf = null;
  9. 09 /获取系统时间 格式为:"yyyy/MM/dd "/
  10. 10 public static String getCurrentDate() {
  11. 11 Date d = newDate();
  12. 12 sf = newSimpleDateFormat("yyyy年MM月dd日");
  13. 13 returnsf.format(d);
  14. 14 }
  15. 15 /时间戳转换成字符窜/
  16. 16 public static String getDateToString(long time) {
  17. 17 Date d = newDate(time);
  18. 18 sf = newSimpleDateFormat("yyyy年MM月dd日");
  19. 19 returnsf.format(d);
  20. 20 }
  21. 21 /将字符串转为时间戳/
  22. 22 public static long getStringToDate(String time) {
  23. 23 sdf = newSimpleDateFormat("yyyy年MM月dd日");
  24. 24 Date date = newDate();
  25. 25 try{
  26. 26 date = sdf.parse(time);
  27. 27 } catch(ParseException e) {
  28. 28 // TODO Auto-generated catch block
  29. 29 e.printStackTrace();
  30. 30 }
  31. 31 returndate.getTime();
  32. 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、在对应使用的地方调用:

  1. 01 DateUtils.getCurrentDate(); //获取系统当前时间
  2. 02 DateUtils.getDateToString(时间戳); //时间戳转为时间格式
  3. 03 DateUtils.getStringToDate("时间格式");//时间格式转为时间戳.

复制代码

DateUtils.getCurrentDate(); //获取系统当前时间 DateUtils.getDateToString(时间戳); //时间戳转为时间格式 DateUtils.getStringToDate("时间格式");//时间格式转为时间戳.

二、C#时间戳转换方法:

**** C#的代码(加入了闰年):

注:.Net的DateTime对象返回的是100纳秒的时间单位,年份是从AD1开始计算的。

  1. 01 class Program
  2. 02 {
  3. 03 // 定义必须变量
  4. 04 const int _1M = 60; // 分钟
  5. 05 const int _1H = _1M * 60; // 小时
  6. 06 const int _1D = _1H * 24; // 天
  7. 07 const long _1Y = _1D * 365; // 年(非闰年)
  8. 08 const long _YS = _1Y * 3 + _1D * 366; // 一个闰年年度
  9. 09 const long _30D = _1D * 30; // 30天(月)
  10. 10 const long _31D = _1D * 31; // 31天(月)
  11. 11 const long _28D = _1D * 28; // 28天(月)
  12. 12 const long _29D = _1D * 29; // 29天(月)
  13. 13 long[] NormalYear = { _31D, _28D, _31D, _30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D }; // 年
  14. 14 long[] LeapYear = { _31D, _29D, _31D, _30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D }; // 闰年
  15. 15 static void Main(string[] args)
  16. 16 {
  17. 17 Program P = new Program();
  18. 18 System.Console.WriteLine(P.getDate(P.getTimeSpame()));
  19. 19 DateTime T = DateTime.Now;
  20. 20 System.Console.WriteLine(P.getTimeSpame() + " : " + P.getTimeSpame(T.Year, T.Month, T.Day, T.Hour, T.Minute, T.Second));
  21. 21 System.Console.ReadKey();
  22. 22 }
  23. 23 private Program() {}
  24. 24 public string getDate(long TimeSp)
  25. 25 {
  26. 26 // 年,月,天,小时,分钟,秒
  27. 27 int year = 0;
  28. 28 int month = 0;
  29. 29 int day = 0;
  30. 30 int hour = 0;
  31. 31 int minute = 0;
  32. 32 int second = 0;
  33. 33 //DateTime now = DateTime.Now;
  34. 34 //long TimeSp = getTimeSpame(); // 当前时间戳
  35. 35 // 年
  36. 36 int _y1 = (int)(TimeSp / _YS); // 获得按年度得到的年度
  37. 37 TimeSp -= _YS * _y1; // 计算剩余秒
  38. 38 int _y2 = (int)(TimeSp / _1Y); // 剩余年
  39. 39 TimeSp -= _1Y * _y2;
  40. 40 year = _y1 * 4 + _y2 + 1970;
  41. 41 // 月
  42. 42 long[] YearArr = isLeapYear(year) ? LeapYear : NormalYear; // 获取年的月度表
  43. 43 month = 1; // 从1月开始计算
  44. 44 for (int i = 0; i
  45. 45 {
  46. 46 if (TimeSp - YearArr[i]
  47. 47 ++month;
  48. 48 TimeSp -= YearArr[i];
  49. 49 }
  50. 50 // 天
  51. 51 day = (int)(TimeSp / _1D);
  52. 52 TimeSp -= day * _1D;
  53. 53 // 时
  54. 54 hour = (int)(TimeSp / _1H);
  55. 55 TimeSp -= hour * _1H;
  56. 56 // 分
  57. 57 minute = (int)(TimeSp / _1M);
  58. 58 // 秒
  59. 59 second = (int)(TimeSp % _1M);
  60. 60 string DateStr = year + "年" + month + "月" + day + "日 " + hour + "点" + minute + "分" + second + "秒";
  61. 61 return DateStr;
  62. 62 }
  63. 63 // 判断是否闰年
  64. 64 private bool isLeapYear(int year)
  65. 65 {
  66. 66 return (year % 4 == 0 ? true : false);
  67. 67 }
  68. 68 // 获取当前时间戳 按1970年开始计算,精度为秒!
  69. 69 private long getTimeSpame()
  70. 70 {
  71. 71 DateTime _Now = DateTime.Now;
  72. 72 DateTime _1970 = new DateTime(1970, 1, 1);
  73. 73 long _Sp = (_Now.Ticks - _1970.Ticks) / 10000000;
  74. 74 return _Sp;
  75. 75 }
  76. 76 // 按既定格式把时间转成成时间戳
  77. 77 private long getTimeSpame(int Year, int Month, int Day, int Hour, int Minute, int Second)
  78. 78 {
  79. 79 long val = 0;
  80. 80 val += Second; // 秒
  81. 81 val += Minute * _1M; // 分钟
  82. 82 val += Hour * _1H; // 小时
  83. 83 val += Day * _1D; // 天
  84. 84 long[] YearArr = isLeapYear(Year) ? LeapYear : NormalYear;
  85. 85 for (int i = 0; i
  86. 86 {
  87. 87 val += YearArr[i];
  88. 88 }
  89. 89 Year -= 1970;
  90. 90 val += (Year / 4) * _YS;
  91. 91 Year -= (int)(Year / 4) * 4;
  92. 92 val += Year * _1Y;
  93. 93 return val;
  94. 94 }
  95. 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时间戳转换方法:

**** 代码如下:

  1. 01 // 定义常量
  2. 02 var _1M = 60; // 分钟
  3. 03 var _1H = _1M * 60; // 小时
  4. 04 var _1D = _1H * 24; // 天
  5. 05 var _1Y = _1D * 365; // 年(非闰年)
  6. 06 var _YS = _1Y * 3 + _1D * 366; // 一个闰年年度
  7. 07 var _30D = _1D * 30; // 30天(月)
  8. 08 var _31D = _1D * 31; // 31天(月)
  9. 09 var _28D = _1D * 28; // 28天(月)
  10. 10 var _29D = _1D * 29; // 29天(月)
  11. 11 var NormalYear = [ _31D, _28D, _31D, _30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D ]; // 年
  12. 12 var LeapYear = [ _31D, _29D, _31D, _30D, _31D, _30D, _31D, _31D, _30D, _31D, _30D, _31D ]; // 闰年
  13. 13 var Now = new Date();
  14. 14 TimeSp = Now.getTime() / 1000;
  15. 15 //alert(Now.getTimezoneOffset()); // 时区差
  16. 16 TimeSp += -1 * Now.getTimezoneOffset() * _1M; // 修正UTC
  17. 17 // 年,月,天,小时,分钟,秒
  18. 18 var year = month = day = hour = minute = second = 0;
  19. 19 // 年
  20. 20 var _y1 = parseInt(TimeSp / _YS); // 获得按年度得到的年度
  21. 21 TimeSp -= _YS * _y1; // 计算剩余秒
  22. 22 var _y2 = parseInt(TimeSp / _1Y); // 剩余年
  23. 23 TimeSp -= _1Y * _y2;
  24. 24 year = _y1 * 4 + _y2 + 1970;
  25. 25 // 月
  26. 26 var YearArr = year % 4 == 0 ? LeapYear : NormalYear; // 获取年的月度表
  27. 27 month = 1; // 从1月开始计算
  28. 28 for (i=0; i
  29. 29 {
  30. 30 if (TimeSp - YearArr[i]
  31. 31 ++month;
  32. 32 TimeSp -= YearArr[i];
  33. 33 }
  34. 34 // 天
  35. 35 day = parseInt(TimeSp / _1D);
  36. 36 TimeSp -= day * _1D;
  37. 37 // 时
  38. 38 hour = parseInt(TimeSp / _1H);
  39. 39 TimeSp -= hour * _1H;
  40. 40 // 分
  41. 41 minute = parseInt(TimeSp / _1M);
  42. 42 // 秒
  43. 43 second = parseInt(TimeSp % _1M);
  44. 44 var DateStr = year + "年" + month + "月" + day + "日 " + hour + "点" + minute + "分" + second + "秒";
  45. 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的时间戳转换方法介绍,因为闰年的存在,代码的使用前请阅读一下。

免责声明: 凡标注转载/编译字样内容并非本站原创,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如果你觉得本文好,欢迎推荐给朋友阅读;本文链接: https://m.nndssk.com/xtjc/2758171GjMSm.html。
猜你喜欢
最新应用
热门应用