[转]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= ...
随机推荐
- ThreadLocal 简介 案例 源码分析 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- sql server management studio 查询的临时文件路径
C:\Users\你的登录名称\Documents\SQL Server Management Studio\Backup Files C:\Users\你的登录名称\AppData\Local\Te ...
- logback身份证脱敏
logback身份证脱敏 学习了:https://shift-alt-ctrl.iteye.com/blog/2425469 https://blog.csdn.net/fywfengyanwei/a ...
- C# Chart使用总结 2 ---------chart悬停选定数值操作
1.用鼠标悬停事件处理 private void Form1_Load(object sender, EventArgs e) { //connStr = connPath1 + conn2; fil ...
- 在 OC 中调用 Swift 代码
1.在 Objective-C 项目中使用 Swift 代码 1)在 OC 项目中创建 .Swift 文件,文件中的格式为其本有的格式. 2)Xcode 提示是否创建 Objective-C brid ...
- 一起SQL引发OOM的解决思路与过程(转载)
在TOMCAT WEB程序的运行过程中,突然触发了内存溢出错误,检查Tomcat的localhost日志,找到如下信息: java.lang.OutOfMemoryError: Java heap s ...
- Boost中的智能指针(转)
这篇文章主要介绍 boost中的智能指针的使用.(转自:http://www.cnblogs.com/sld666666/archive/2010/12/16/1908265.html) 内存管理是一 ...
- Error loading page Domain: WebKitErrorDomain Error Code: 101
使用 WebView 组件,loading的过程中出现这个错误. 解决方案: webVIew 里面加 renderError={ (e) => { if (e === 'WebKitErrorD ...
- vue中使用localstorage
1.store.js(读取写入到localstorage) const STORAGE_KEY="todos-vuejs" export default{ fetch(){ ret ...
- Asp.Net WebApi swagger使用教程
swagger简介 别名:丝袜哥 功能:用于生产api文档 swagger安装 Nuget搜索swagger,然后安装Swashbuckle swagger使用 生成api的xml文档 webapi项 ...