关于java和javascript交互中的日期处理问题汇总
来源:互联网 发布:移动网络打不开黄页 编辑:程序博客网 时间:2024/06/06 01:51
javascript部分
分两种情况:
—-后台接收long型
——–js处理
(new Date()).getTime()//Date转long,默认new Date()可以把当前日期时间精确到秒输出结果:1455862677881//即2016/2/19 14:17:57long转datevar unixtime = new Date(1446810976000);输出结果:Fri Nov 06 2015 19:56:16 GMT+0800 (中国标准时间)获取n天后的日期var self=this;//这里的this是我的那个页面dom,里面包含各种方法var curDate=self.formatDate(new Date(),'yyyy-MM-dd');//格式化日期工具方法在下面有提供var afterDate= self.formatDate(new Date().getTime()+ 30*24*60*60*1000,'yyyy-MM-dd');//30天后console.log(curDate);//2015-02-22console.log(afterDate);//2015-03-23var timestamp =Date.parse(new Date(afterDate));console.log(timestamp);//取出当前时间戳输出结果:1455860246000//unix时间戳,到网站上面转码需要去除最后面**000**如下图----------input的输入框是date类型,只能精确到日期--时间自己pingvar today=new Date();var h=today.getHours();var m=today.getMinutes();var s=today.getSeconds();console.log(h+":"+m+":"+s);输出结果:13:51:29html5的input输入框的type datetime-local(精确到了时:分)如下图<input type="datetime-local">需要自己处理,为啥?请看下面控制台输出var a=$0;console.log(avalue);输出结果:2016-02-12T12:23----------//因为多了个T。这个不知道是不是H5的bug,我是无法理解了,于是传入后台之前需要处理一下,我写了个replace方法。this.entity.publishDate = self.changeDateT(this.entity.publishDate)+":00";//这里面不加00的话转化成long型的时候也是会默认加00,下面说明new Date(2016-02-12 12:23).getTime()=new Date(2016-02-12 12:23:00).getTime();changeDateT:function(date){ return date.replace("T"," "); }附上格式化日期的方法---------- /** * 格式化日期 */ formatDate:function(date,fmt){ date = date || new Date().getTime(); fmt=fmt||'yyyy-MM-dd HH:mm:ss'; date = new Date(Number(date)); var o = { "M+" : date.getMonth() + 1, // 月份 "d+" : date.getDate(), // 日 "H+" : date.getHours(), // 小时 "m+" : date.getMinutes(), // 分 "s+" : date.getSeconds(), // 秒 "q+" : Math.floor((date.getMonth() + 3) / 3), // 季度 "S" : date.getMilliseconds() // 毫秒 }; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "") .substr(4 - RegExp.$1.length)); } for ( var k in o) if (new RegExp("(" + k + ")").test(fmt)) { fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); } return fmt; },----------到此前端各种日期时间传入后台之前的处理基本完成。----------
—-java部分接收Date
—-后端是springmvc的javabean接收数据
——–后端javabean中的处理
long型 private long invoiceCreatedAt;Date型 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createDateStart;//case1 private String startTime;//case2 private Date paymentTime; //交易时间case3关于DateTimeFormat**是springmvc的一种注入有兴趣的可以百度下**下面是查询的时候需要对日期进行处理的一个例子//缺省查询时间范围是当前日期的前一个月这里param.getSatetTime是String类型容易出错的地方是查询应该从00:00:00到24:00:00if (!StringHelper.isAnyEmpty(param.getStartTime())) { queryParams.put("startTime", DateHelper.convertToStr("yyyy-MM-dd 00:00:00", new Date(new Long(param.getStartTime()))));} else { queryParams.put("startTime", DateHelper.convertToStr("yyyy-MM-dd HH:mm:ss", DateHelper.getAfterDate(new Date(), -30)));}if (!StringHelper.isAnyEmpty(param.getEndTime())) { queryParams.put("endTime", DateHelper.convertToStr("yyyy-MM-dd 24:00:00", new Date(new Long(param.getEndTime()))));} else { queryParams.put("endTime", DateHelper.convertToStr("yyyy-MM-dd HH:mm:ss", DateHelper.getAfterDate(new Date(), 1)));}情况2:直接给javabean中的data型属性赋值 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); project.setPstartDate(df.parse( DateHelper.convertToStr("yyyy-MM-dd HH:mm:ss", DateHelper.getAfterDate(new Date(), 1))));//竞标日期 project.setPfullDate(df.parse( DateHelper.convertToStr("yyyy-MM-dd HH:mm:ss", DateHelper.getAfterDate(new Date(), 2))));//满标日期*/ project.setPvalueDate(DateHelper.getAfterDate(new Date(), 3));//起息日期 project.setPendDate(df.parse( DateHelper.convertToStr("yyyy-MM-dd HH:mm:ss", DateHelper.getAfterDate(new Date(), 30))));//回款日期 project.setPrealendDate(df.parse( DateHelper.convertToStr("yyyy-MM-dd HH:mm:ss", DateHelper.getAfterDate(new Date(), -30))));;//实际回款日期 project.setOverDate(df.parse( DateHelper.convertToStr("yyyy-MM-dd HH:mm:ss", DateHelper.getAfterDate(new Date(), 47))));//项目结束日期; project.setRemark("测试数据");附上工具类 /** * @param currentDate 当前日期 * @param interval 跳跃的天数,负数向前跳,正数向后跳 * @return */ public static Date getAfterDate(Date currentDate,int interval){ Calendar calendar = Calendar.getInstance(); calendar.setTime(currentDate); calendar.add(Calendar.DATE, interval); Date temp = new Date(calendar.getTimeInMillis()); Date result = parse(dateFormat(temp, YYMMDD), YYMMDD); return result; } /** * 把当前时间转换成目标字符格式串 * * @param pattern * 格式 * @param date * 需要转换的日期 * @return */ public static String convertToStr(String pattern, Date date) { SimpleDateFormat format = new SimpleDateFormat(pattern); return format.format(date); }传入scala的话java与scala的bean匹配有下----------java:public aJava( RequestHeader requestHeader, PageRequest pageRequest, Map<String, String> queryParams)scala:class aScala(requestHeader: RequestHeader, pageRequest: PageRequest, queryParams: java.util.Map[String, String]) extends OrderDbcActionHandler[ReceiptAccounts, ReceiptLineQueryResponse](requestHeader, null) {----------
日期处理到此前后端交互处理完成,其他的遗漏或者补充的日后会跟进的
0 0
- 关于java和javascript交互中的日期处理问题汇总
- JavaScript和Java Applet交互权限问题
- JAVA中的日期时间处理问题
- 关于Java中的一些问题汇总
- 关于Java中的一些问题汇总
- java中的日期和时间处理示例
- java中的日期和时间处理示例
- Java中的日期处理
- Java中的日期处理
- java中的日期处理
- java中的日期处理
- java 中的日期处理
- java中的日期处理
- java 中的日期处理
- JAVA基础应用: 处理Java中的日期问题
- JAVA基础应用: 处理Java中的日期问题
- 关于java中的对象交互问题(模拟时钟)
- Android WebView中的JavaScript和java代码的交互
- 苏格拉底与失恋者的对话(转文)
- 矩阵快速幂模板
- 统计有效、空行、注解代码行数
- sqlite常见问题分析与总结
- Android判断一个点在不在多边形中
- 关于java和javascript交互中的日期处理问题汇总
- 安卓反编译揭秘:伪加密APK文件被破坏
- android studio生成aar包并在其他工程引用aar包
- 探索在onCreate()中开启工作线程更新UI,不报错的原因:
- WEBP
- 昨天霸屏的Apple Pay和营销沾边吗?
- 解决Android与服务器交互大容量数据问题
- OpenSSL源码升级
- sqlite3+使用总结