[转]Java中一周前一个月前时间计算方法
Java中一周前一个月前时间计算方法
在java语言中,用如下方法获取系统时间:
Date date = new Date();
String year=new SimpleDateFormat("yyyy").format(date);
String month=new SimpleDateFormat("MM").format(date);
String day=new SimpleDateFormat("dd").format(date);这样是分别获取String形式的四位年两位月两位日。比如今天就是“2009”和“08”和“05”
当然也可以这样写:String dateString=new
SimpleDateFormat("yyyy-MM-dd").format(date);这样写就会获得“2009-08-05”的字符串。注意M大
写,其他小写。
如果要详细时间,括号中改成"yyyy-MM-dd hh-mm-ss"。HH大写为24小时制,小写为12小时制。
另外值得注意的一点是,在sql server数据库中,例如某字段time为smalldatetime数据格式,可以将它与字符串比较 比如:....where time>'20090604' 和:....where
time>'2009-06-04'
都是正确的。都是表示搜索2009年6月4日0点0时0分以后的信息。但是这个以字符串表示的时间必须是真实存在的,不可以出现'2009-02-29'
的状况。因为没有29日,在String向smalldatetime数据类型转换的时候发生异常。
但是在类似论坛发帖的功能中,常常会从数据库中获取一周前,一个月前的数据,我在JAVA中写了这样的方法,(貌似)是对的~有用的可以拿去用……
//获得一周前的日期
public String lastWeek(){
Date date = new Date();
int year=Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
int month=Integer.parseInt(new SimpleDateFormat("MM").format(date));
int day=Integer.parseInt(new SimpleDateFormat("dd").format(date))-6;
if(day<1){
month-=1;
if(month==0){
year-=1;month=12;
}
if(month==4||month==6||month==9||month==11){
day=30+day;
}else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
day=31+day;
}else if(month==2){
if(year%400==0||(year %4==0&&year%100!=0))day=29+day;
else day=28+day;
}
}
String y = year+"";String m ="";String d ="";
if(month<10) m = "0"+month;
else m=month+"";
if(day<10) d = "0"+day;
else d = day+"";
return y+m+d;
}
//获得allMonth月前的日期,allMonth可以为任意值
public String lastMonth(int allMonth) {
Date date = new Date();
int year=Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
int month=Integer.parseInt(new SimpleDateFormat("MM").format(date))-allMonth;
int day=Integer.parseInt(new SimpleDateFormat("dd").format(date));
if(month <= ){
int yearFlag = (month*(-))/12 + 1;
int monthFlag = (month *(-))%;
year -= yearFlag;
month=monthFlag*(-) +;
}
else if(day>){
if(month==){
if(year%==||(year %==&&year%!=)){
day=;
}else day=;
}else if((month==||month==||month==||month==)&&day==){
day=;
}
}
String y = year+"";String m ="";String d ="";
if(month<) m = ""+month;
else m=month+"";
if(day<) d = ""+day;
else d = day+"";
return y+m+d;
}
地址:http://www.cn-java.com/www1/bbs/viewthread.php?tid=34559
[转]Java中一周前一个月前时间计算方法的更多相关文章
- javascript 关于一周前一个月前的处理方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Java获取当前日期的前一个月,前一天的时间
Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -); //得到前一天 calendar.add(Cal ...
- Java | 在 Java 中执行动态表达式语句: 前中后缀、Ognl、SpEL、Groovy、Jexl3
在一些规则集或者工作流项目中,经常会遇到动态解析表达式并执行得出结果的功能. 规则引擎是一种嵌入在应用程序中的组件,它可以将业务规则从业务代码中剥离出来,使用预先定义好的语义规范来实现这些剥离出来的业 ...
- Java中设置方法执行的超时时间java.util.concurrent.Future
java.util.concurrent.Future Future代表一个异步计算的结果.它提供了方法来检查是否计算已经完成,还是正在计算而处于等待状态,并且也提供了获取计算结果 方法.当计算完成后 ...
- java中Thursday 05 September 2002类型时间的转化
package config; import Java.text.DateFormat; import java.text.ParseException; import java.text.Simpl ...
- [python实用代码片段]python获取当前时间的前一天,前一周,前一个月
python获取当前时间的前一天,前一周,前一个月. 实用python的datetime.timedelta方法,避免了有的月份是30和31等不同的情况. 获取前一个月的时间,方法实现:首先datet ...
- [置顶] java得到前一个月的年月日时分秒
import java.util.Calendar; /** * 得到前一个月的年月日时分秒 * @author Mr.hu * 2013-6-28上午12:00:35 * Class Explain ...
- JAVA中JDK1.8的LocalDateTime日期类的操作方法
LocalDateTime与Date相互转换参考:https://www.cnblogs.com/pxblog/p/13745972.html 关键类 Instant:瞬时时间. LocalDate: ...
- php获取前一天,前一个月,前一年的时间
获取前一天的时间: $mytime= date("Y-m-d H:i:s", strtotime("-1 day")); 获取三天前的时间: $mytime= ...
随机推荐
- SQLSERVER 2012 之 “代理 XP”组件已作为此服务器安全配置的一部分被关闭
新建维护计划的时候遇到下图的报错信息 标题: Microsoft SQL Server Management Studio ------------------------------ “代理 XP” ...
- java 对一个字符串进行加减乘除的运算
记录一个小程序,里面涉及到的JAVA知识点有:字符串扫描,list删除元素的方法,泛型的使用,JAVA中的/要注意的事项.有兴趣的可以看看 package com.demo; import java. ...
- Attempt to present <TestViewController2: 0x7fd7f8d10f30> on <ViewController: 0x7fd7f8c054c0> whose view is not in the window hierarchy!
当 storyboard里面的 按钮 即连接了 类文件里面的点击方法 又 连接了 storyboard里 另一个 控制器的 modal 就会出现类似Attempt to present & ...
- Mac Apache WebDav 服务器配置
1.WebDav 服务器 基于 http 协议的 "文件" 服务器. 实现文件的上传/下载/修改/删除. WebDav 权限 授权信息的格式 BASIC (用户名:口令)base6 ...
- MySQL8的新特性ROLE
[MySQL的ROLE解决了什么问题] 假设你是一个职业素养良好的DBA比较同时又比较注重权限管理的话:可能遇到过这样的问题,数据库中有多个开发人员的账号:有一天要建 一个新的schema,如果你希望 ...
- js 检测变量是否存在
实际开发过程中,会有判断一个变量是否存在的场景 首先想到的是 if(a==undefined){ console.log("a is undefined") }else{ cons ...
- CentOS7安装chrony替代ntp同步时间
Chrony是一个开源的自由软件,它能保持系统时钟与时钟服务器(NTP)同步,让时间保持精确.它由两个程序组成:chronyd和chronyc:chronyd是一个后台运行的守护进程,用于调整内核中运 ...
- 关于dealloc 注意事项
以下讨论在 MRC 下. 1,不要在init和dealloc函数中使用accessor Don’t Use Accessor Methods in Initializer Methods and de ...
- 10个对Web开发者最有用的Python包
Python最近成为了开发人员最喜欢的语言之一.无论你是专业的,业余的,还是一个初学者,你都可以从Python语言及其程序包中受益.Python已经被证明是当今最具活力的面向对象的编程语言之一.这就是 ...
- js绝对地址图片转换成base64的方法
//将图片转换成base64 function getBase64Image(url, callback){ var canvas = document.createElement('canvas') ...