在我开发项目当中,就遇到了一个需求就是日历类转换为时间戳,当时实在是懵比,因为时间戳是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这样就完成了时间戳的转换
