在我开发项目当中,就遇到了一个需求就是日历类转换为时间戳,当时实在是懵比,因为时间戳是long类型的,一时不知道怎么转换,好啦废话不多说了,直接简单粗暴的上代码吧,看一下转换的工具类
public class SetDataUtil { public static final String DATEFORMAT = "yyyy-MM-dd"; public static String getTime(long l){ String str = String.valueOf(l); return str.substring(0, 10); } /** * * @param user_time * 时间 * @return 返回时间戳 */ public static String getTime(String user_time) { String re_time = null; String str=null; SimpleDateFormat sdf = new SimpleDateFormat(DATEFORMAT); Date d; try { d = sdf.parse(user_time); long l = d.getTime(); str = String.valueOf(l); re_time = str.substring(0, 10); } catch (Exception e) { e.printStackTrace(); } return re_time; //return str; } public static String timeStamp2Date(Date data,String format) { return timeStamp2Date(String.valueOf(data.getTime()).substring(0,10),format); } /* * 时间戳转换成日期格式字符串 * @param seconds 精确到秒的字符串 * @param formatStr * @return */ public static String timeStamp2Date(String seconds,String format) { if(seconds == null || seconds.isEmpty() || seconds.equals("null")){ return ""; } if(format == null || format.isEmpty()) format = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(new Date(Long.valueOf(seconds+"000"))); } } 下面看一下我在项目中用到的日期选择类
/* * 日期选择器 * */ private void showDate() { Calendar selectedDate = Calendar.getInstance(); Calendar startDate = Calendar.getInstance(); startDate.set(2028, 1, 1); endDate = Calendar.getInstance(); endDate.set(2098, 1, 1); TimePickerView pvTime = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() { @Override public void onTimeSelect(Date date, View v) { String time = getTime(date); Log.e("time",time); //时间转换为时间戳
longTime = SetDataUtil.getTime(time); Log.e("longTime", longTime);tv_valid.setText(time) ; } }) .setType( new boolean[]{ true, true, true, false, false, false}) // 默认全部显示 .setCancelText( "取消") //取消按钮文字 .setSubmitText( "确定") //确认按钮文字 // .setContentSize(18)//滚轮文字大小 // .setTitleSize(20)//标题文字大小 // //.setTitleText("Title")//标题文字 // .setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示 // .isCyclic(true)//是否循环滚动 // //.setTitleColor(Color.BLACK)//标题文字颜色 // .setSubmitColor(Color.BLUE)//确定按钮文字颜色 // .setCancelColor(Color.BLUE)//取消按钮文字颜色 // //.setTitleBgColor(0xFF666666)//标题背景颜色 Night mode // .setBgColor(0xFF333333)//滚轮背景颜色 Night mode .setDate(selectedDate) // 如果不设置的话,默认是系统时间*/ .setRangDate(startDate , endDate) //起始终止年月日设定 .setLabel( "年" , "月" , "日" , "时" , "分" , "秒") //默认设置为年月日时分秒 .isCenterLabel( false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。 //.isDialog(true)//是否显示为对话框样式 .build() ; pvTime.show() ; }
private String getTime(Date date) {//可根据需要自行截取数据显示 //"YYYY-MM-DD HH:MM:SS" "yyyy-MM-dd" SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); return format.format(date); }
E/longTime: 1833120000这样就完成了时间戳的转换