java : 获取当月第一天和最后一天

package com.test.packager;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Test {
private static String firstDay;
private static String lastDay;
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd”);

//获取前月的第一天
Calendar cal_1=Calendar.getInstance();//获取当前日期
cal_1.add(Calendar.MONTH, -1);
cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
firstDay = format.format(cal_1.getTime());
System.out.println(“—–1——firstDay:”+firstDay);
//获取前月的最后一天
Calendar cale = Calendar.getInstance();
cale.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天
lastDay = format.format(cale.getTime());
System.out.println(“—–2——lastDay:”+lastDay);

//获取当前月第一天:
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
String first = format.format(c.getTime());
System.out.println(“===============first:”+first);

//获取当前月最后一天
Calendar ca = Calendar.getInstance();
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
String last = format.format(ca.getTime());
System.out.println(“===============last:”+last);

}
/**
* 字符串的日期格式的计算
*/
public static int daysBetween(String smdate,String bdate) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1 = cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate));
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return Integer.parseInt(String.valueOf(between_days));
}
}

参考:
1.http://cherryqq.iteye.com/blog/1117026
2.http://www.cnblogs.com/lr393993507/p/5542607.html

微信公众号: 共享收货地址 java

1.  终于搞定这个收货地址了,  微信官方的文档真不能信

2. 问题1:  确认 sha1 签名算法的正确性, 我自己在网上找的时候,找到两个不同结果的版本

3. 问题2:

官方文档的sha1 的结果是错误的:(https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_8&index=7)

addrSign=SHA1(accesstoken=OezXcEiiBSKSxW0eoylIeBFk1b8VbNtfWALJ5g6aMgZHaqZwK4euEskSn78Qd5pLsfQtuMdgmhajVM5QDm24W8X3tJ18kz5mhmkUcI3RoLm7qGgh1cEnCHejWQo8s5L3VvsFAdawhFxUuLmg
h5FRA&appid=wx17ef1eaef46752cb&noncestr=123456&timestamp=1384841012&url=http://open.weixin.qq.com/?code=CODE&state=STATE)=ca604c740945587544a9cc25e58dd090f200e6fb

 

正确的是:

b43e348ff8e0a8d04b7b4274ce1bd6c4db00b1a4

4.  参数大小的问题就不说了, 我没遇到过

5. 问题3:

原先一直在纠结 url 是否要加 code 和state ,(?code=CODE&state=STATE),

后来发现 code 和 state 不添加,也能成功。

6. 问题4:

我用ios 上的微信调用一直失败, 后来换了台android 的机器就成功了 (这个比较郁闷,卡了好久

7. 注意url 是否一致, 我部署线上版本的时候,做过端口转发处理, 用nginx 将80端口转到

8080 端口上, 导致这边获取到的url 跟页面显示的不一致,导致验证不通过,提示

{“err_msg”:”edit_address:fail“}

 

8. 源码: [TODO]

 

 

 

java : servlet response.sendRedirect()

假设转发代码包含于注册的servlet-url为/ggg/tt;jsp为/ggg/tt.jsp。

绝对路径:response.sendRedirect(“http://www.brainysoftware.com”)发送至http://www.brainysoftware.com
根路径:response.sendRedirect(“/ooo”)发送至http://localhost:8080/ooo
相对路径:response.sendRedirect(“ooo”)发送至http://localhost:8080/Test/ggg/ooo。

 

参考:

[1]http://jorton468.blog.163.com/blog/static/72588135201101711810508