时间戳如何转换为日期格式?当初把日期格式转换为时间戳是为了更好的记录数据,现在如果想要看看当初时间戳被转换的时间,可以按照以下方法来实现,详情请阅读下文MySQL、C#、JS时间戳转换方法。
MySQL、C#、JS时间戳转换方法:
一、MySQL戳转换方法:
1、原理:
时间戳的原理是把时间格式转为十进制格式,这样就方便时间的计算,如:1377216000000 转化后是 2013年08月23日 。
2、步骤:
(1) 创建 DateUtilsl类。
(2) 输入代码:
01importjava.text.ParseException;02importjava.text.SimpleDateFormat;03importjava.util.Date;04/*05 * @author Msquirrel06*/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日");13returnsf.format(d);14}15/时间戳转换成字符窜/16 public static String getDateToString(long time) {17 Date d = newDate(time);18 sf = newSimpleDateFormat("yyyy年MM月dd日");19returnsf.format(d);20}21/将字符串转为时间戳/22 public static long getStringToDate(String time) {23 sdf = newSimpleDateFormat("yyyy年MM月dd日");24 Date date = newDate();25try{26 date = sdf.parse(time);27 } catch(ParseException e) {28 // TODO Auto-generated catch block29e.printStackTrace();30}31returndate.getTime();32}复制代码
importjava.text.ParseException; importjava.text.SimpleDateFormat;importjava.util.Date; / * @author Msquirrel / public class DateUtils {privateSimpleDateFormat sf = null; /获取系统时间 格式为:"yyyy/MM/dd "/ public staticString getCurrentDate() { Date d = newDate(); sf =newSimpleDateFormat("yyyy年MM月dd日"); returnsf.format(d); } /时间戳转换成字符窜/ publicstatic String getDateToString(long time) { Date d = newDate(time); sf =newSimpleDateFormat("yyyy年MM月dd日"); returnsf.format(d); } /将字符串转为时间戳/ publicstatic long getStringToDate(String time) { sdf =newSimpleDateFormat("yyyy年MM月dd日"); Date date = newDate(); try{ date =sdf.parse(time); } catch(ParseException e) { // TODO Auto-generated catchblock e.printStackTrace(); } returndate.getTime(); }
3、在对应使用的地方调用:
01 DateUtils.getCurrentDate(); //获取系统当前时间 02 DateUtils.getDateToString(时间戳); //时间戳转为时间格式 03DateUtils.getStringToDate("时间格式");//时间格式转为时间戳.复制代码
DateUtils.getCurrentDate(); //获取系统当前时间 DateUtils.getDateToString(时间戳);//时间戳转为时间格式 DateUtils.getStringToDate("时间格式");//时间格式转为时间戳.
二、C#时间戳转换方法:
**** C#的代码(加入了闰年):
注:.Net的DateTime对象返回的是100纳秒的时间单位,年份是从AD1开始计算的。
01 class Program02{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();18System.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));21System.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 复制代码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(longTimeSp) { // 年,月,天,小时,分钟,秒 int year = 0; int month = 0; int day = 0; int hour= 0; int minute = 0; int second = 0; //DateTime now = DateTime.Now; //longTimeSp = 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; // 修正UTC17 // 年,月,天,小时,分钟,秒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