android时间戳转换成日期(与php后台),日期转换成时间戳小问题记录
Posted 骑鲸鱼的企鹅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android时间戳转换成日期(与php后台),日期转换成时间戳小问题记录相关的知识,希望对你有一定的参考价值。
之前常用的是,和java开发的后台对接数据,正常也没有遇到过这个问题,又一次在和php对接的后台做项目是,时间转换出了问题,我看了些许时间的代码,都没有问题。最后发现返回时间戳的位数不对,才确认到,问题是出现在这里
PHP和Java时间戳存在三位位差!!!
所以,在工具类里面,对于接收服务器的时间戳,转换之前,添加了一个判断,以方便“以防万一”。
代码块:
public static String getFetureDate(long expire)
//PHP和Java时间戳存在三位位差,用000补齐
if (String.valueOf(expire).length() == 10)
expire = expire * 1000;
Date date = new Date(expire);
SimpleDateFormat format = new SimpleDateFormat("MM月dd日");
String result = format.format(date);
if (result.startsWith("0"))
result = result.substring(1);
return result;
以上,则可以列为常用时间转换的工具类里的常用方法。
至于其他的时间转换格式方法,附上一个网络上“遍地都是”的工具类一份也方便大家使用。
// by zhenqi http://blog.csdn.net/w630886916
public class DateUtils
public static String getTodayDateTime()
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
Locale.getDefault());
return format.format(new Date());
/**
* 掉此方法输入所要转换的时间输入例如("2014年06月14日16时09分00秒")返回时间戳
*
* @param time
* @return
*/
public String data(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒",
Locale.CHINA);
Date date;
String times = null;
try
date = sdr.parse(time);
long l = date.getTime();
String stf = String.valueOf(l);
times = stf.substring(0, 10);
catch (Exception e)
e.printStackTrace();
return times;
public static String getTodayDateTimes()
SimpleDateFormat format = new SimpleDateFormat("MM月dd日",
Locale.getDefault());
return format.format(new Date());
/**
* 获取当前时间
*
* @return
*/
public static String getCurrentTime_Today()
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
return sdf.format(new java.util.Date());
/**
* 调此方法输入所要转换的时间输入例如("2014-06-14-16-09-00")返回时间戳
*
* @param time
* @return
*/
public static String dataOne(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss",
Locale.CHINA);
Date date;
String times = null;
try
date = sdr.parse(time);
long l = date.getTime();
String stf = String.valueOf(l);
times = stf.substring(0, 10);
catch (Exception e)
e.printStackTrace();
return times;
public static String getTimestamp(String time, String type)
SimpleDateFormat sdr = new SimpleDateFormat(type, Locale.CHINA);
Date date;
String times = null;
try
date = sdr.parse(time);
long l = date.getTime();
String stf = String.valueOf(l);
times = stf.substring(0, 10);
catch (Exception e)
e.printStackTrace();
return times;
/**
* 调用此方法输入所要转换的时间戳输入例如(1402733340)输出("2014年06月14日16时09分00秒")
*
* @param time
* @return
*/
public static String times(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
/**
* 调用此方法输入所要转换的时间戳输入例如(1402733340)输出("2014-06-14 16:09:00")
*
* @param time
* @return
*/
public static String timedate(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
/**
* 调用此方法输入所要转换的时间戳输入例如(1402733340)输出("2014年06月14日16:09")
*
* @param time
* @return
*/
public static String timet(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
/**
* @param time斜杠分开
* @return
*/
public static String timeslash(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy/MM/dd,HH:mm");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
/**
* @param time斜杠分开
* @return
*/
public static String timeslashData(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy/MM/dd");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
// int i = Integer.parseInt(time);
String times = sdr.format(new Date(lcc * 1000L));
return times;
/**
* @param time斜杠分开
* @return
*/
public static String timeMinute(String time)
SimpleDateFormat sdr = new SimpleDateFormat("HH:mm");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
public static String tim(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyyMMdd HH:mm");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
public static String time(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd HH:mm");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
// 调用此方法输入所要转换的时间戳例如(1402733340)输出("2014年06月14日16时09分00秒")
public static String times(long timeStamp)
SimpleDateFormat sdr = new SimpleDateFormat("MM月dd日 # HH:mm");
return sdr.format(new Date(timeStamp)).replaceAll("#",
getWeek(timeStamp));
private static String getWeek(long timeStamp)
int mydate = 0;
String week = null;
Calendar cd = Calendar.getInstance();
cd.setTime(new Date(timeStamp));
mydate = cd.get(Calendar.DAY_OF_WEEK);
// 获取指定日期转换成星期几
if (mydate == 1)
week = "周日";
else if (mydate == 2)
week = "周一";
else if (mydate == 3)
week = "周二";
else if (mydate == 4)
week = "周三";
else if (mydate == 5)
week = "周四";
else if (mydate == 6)
week = "周五";
else if (mydate == 7)
week = "周六";
return week;
// 并用分割符把时间分成时间数组
/**
* 调用此方法输入所要转换的时间戳输入例如(1402733340)输出("2014-06-14-16-09-00")
*
* @param time
* @return
*/
public String timesOne(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
public static String timesTwo(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
return times;
/**
* 并用分割符把时间分成时间数组
*
* @param time
* @return
*/
public static String[] timestamp(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
@SuppressWarnings("unused")
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
String[] fenge = times.split("[年月日时分秒]");
return fenge;
/**
* 根据传递的类型格式化时间
*
* @param str
* @param type
* 例如:yy-MM-dd
* @return
*/
public static String getDateTimeByMillisecond(String str, String type)
Date date = new Date(Long.valueOf(str));
SimpleDateFormat format = new SimpleDateFormat(type);
String time = format.format(date);
return time;
/**
* 分割符把时间分成时间数组
*
* @param time
* @return
*/
public String[] division(String time)
String[] fenge = time.split("[年月日时分秒]");
return fenge;
/**
* 输入时间戳变星期
*
* @param time
* @return
*/
public static String changeweek(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
Date date = null;
int mydate = 0;
String week = null;
try
date = sdr.parse(times);
Calendar cd = Calendar.getInstance();
cd.setTime(date);
mydate = cd.get(Calendar.DAY_OF_WEEK);
// 获取指定日期转换成星期几
catch (Exception e)
// TODO Auto-generated catch block
e.printStackTrace();
if (mydate == 1)
week = "星期日";
else if (mydate == 2)
week = "星期一";
else if (mydate == 3)
week = "星期二";
else if (mydate == 4)
week = "星期三";
else if (mydate == 5)
week = "星期四";
else if (mydate == 6)
week = "星期五";
else if (mydate == 7)
week = "星期六";
return week;
/**
* 获取日期和星期 例如:2014-11-13 11:00 星期一
*
* @param time
* @param type
* @return
*/
public static String getDateAndWeek(String time, String type)
return getDateTimeByMillisecond(time + "000", type) + " "
+ changeweekOne(time);
/**
* 输入时间戳变星期
*
* @param time
* @return
*/
public static String changeweekOne(String time)
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
long lcc = Long.valueOf(time);
int i = Integer.parseInt(time);
String times = sdr.format(new Date(i * 1000L));
Date date = null;
int mydate = 0;
String week = null;
try
date = sdr.parse(times);
Calendar cd = Calendar.getInstance();
cd.setTime(date);
mydate = cd.get(Calendar.DAY_OF_WEEK);
// 获取指定日期转换成星期几
catch (Exception e)
// TODO Auto-generated catch block
e.printStackTrace();
if (mydate == 1)
week = "星期日";
else if (mydate == 2)
week = "星期一";
else if (mydate == 3)
week = "星期二";
else if (mydate == 4)
week = "星期三";
else if (mydate == 5)
week = "星期四";
else if (mydate == 6)
week = "星期五";
else if (mydate == 7)
week = "星期六";
return week;
/**
* 获取当前时间
*
* @return
*/
public static String getCurrentTime()
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
return sdf.format(new java.util.Date());
/**
* 输入日期如(2014年06月14日16时09分00秒)返回(星期数)
*
* @param time
* @return
*/
public String week(String time)
Date date = null;
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
int mydate = 0;
String week = null;
try
date = sdr.parse(time);
Calendar cd = Calendar.getInstance();
cd.setTime(date);
mydate = cd.get(Calendar.DAY_OF_WEEK);
// 获取指定日期转换成星期几
catch (Exception e)
// TODO Auto-generated catch block
e.printStackTrace();
if (mydate == 1)
week = "星期日";
else if (mydate == 2)
week = "星期一";
else if (mydate == 3)
week = "星期二";
else if (mydate == 4)
week = "星期三";
else if (mydate == 5)
week = "星期四";
else if (mydate == 6)
week = "星期五";
else if (mydate == 7)
week = "星期六";
return week;
/**
* 输入日期如(2014-06-14-16-09-00)返回(星期数)
*
* @param time
* @return
*/
public String weekOne(String time)
Date date = null;
SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
int mydate = 0;
String week = null;
try
date = sdr.parse(time);
Calendar cd = Calendar.getInstance();
cd.setTime(date);
mydate = cd.get(Calendar.DAY_OF_WEEK);
// 获取指定日期转换成星期几
catch (Exception e)
// TODO Auto-generated catch block
e.printStackTrace();
if (mydate == 1)
week = "星期日";
else if (mydate == 2)
week = "星期一";
else if (mydate == 3)
week = "星期二";
else if (mydate == 4)
week = "星期三";
else if (mydate == 5)
week = "星期四";
else if (mydate == 6)
week = "星期五";
else if (mydate == 7)
week = "星期六";
return week;
Demo就不写了,直接创建类,粘贴复制即可。
以上是关于android时间戳转换成日期(与php后台),日期转换成时间戳小问题记录的主要内容,如果未能解决你的问题,请参考以下文章