java怎样获得当前时间的前几天

java怎样获得当前时间的前几天,第1张

1java中关于获取时间的所有方式如下,

Date dNow = new Date();   //当前时间

Date dBefore = new Date();

Calendar calendar = CalendargetInstance(); //得到日历

calendarsetTime(dNow);//把当前时间赋给日历

calendaradd(CalendarDAY_OF_MONTH, -1);  //设置为前一天

dBefore = calendargetTime();   //得到前一天的时间

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");//设置时间格式

String defaultStartDate = sdfformat(dBefore);    //格式化前一天

String defaultEndDate = sdfformat(dNow); //格式化当前时间

Systemoutprintln("前一天的时间是:" + defaultStartDate);

Systemoutprintln("生成的时间是:" + defaultEndDate);

2如上方式能得到当前时间的前一天时间,同理,可以得到前一天的前一天,那么,前几天的时间都可以这样获得,如果觉得方案还是不可行,可以使用第三方的日历组件来获得更加准确的全年三百六十五天的时间

另有:

Calendar 与 Date 的转换:

Calendar calendar = CalendargetInstance();

// 从一个 Calendar 对象中获取 Date 对象

Date date = calendargetTime();

// 将 Date 对象反应到一个 Calendar 对象中,

// 先获得一个实例,然后设置 Date 对象

calendarsetTime(date);

月份的起始值为0而不是1,所以要设置八月时,我们用7而不是8

calendarset(CalendarMONTH, 7);

计算2000-01-01是星期几

calendarget(calendarDAY_OF_WEEK )

3实例代码测试如下

 Java代码

import Javautil;

public class ShowDate {

public static void main(String[] args) {

Calendar calendar = new GregorianCalendar();

Date trialTime = new Date();

calendarsetTime(trialTime);

// print out a bunch of interesting things

Systemoutprintln("ERA: " + calendarget(CalendarERA));

Systemoutprintln("YEAR: " + calendarget(CalendarYEAR));

Systemoutprintln("MONTH: " + calendarget(CalendarMONTH));

Systemoutprintln("WEEK_OF_YEAR: " + calendarget(CalendarWEEK_OF_YEAR));

Systemoutprintln("WEEK_OF_MONTH: " + calendarget(CalendarWEEK_OF_MONTH));

Systemoutprintln("DATE: " + calendarget(CalendarDATE));

Systemoutprintln("DAY_OF_MONTH: " + calendarget(CalendarDAY_OF_MONTH));

Systemoutprintln("DAY_OF_YEAR: " + calendarget(CalendarDAY_OF_YEAR));

Systemoutprintln("DAY_OF_WEEK: " + calendarget(CalendarDAY_OF_WEEK));

Systemoutprintln("DAY_OF_WEEK_IN_MONTH: " + calendarget(CalendarDAY_OF_WEEK_IN_MONTH));

Systemoutprintln("AM_PM: " + calendarget(CalendarAM_PM));

Systemoutprintln("HOUR: " + calendarget(CalendarHOUR));

Systemoutprintln("HOUR_OF_DAY: " + calendarget(CalendarHOUR_OF_DAY));

Systemoutprintln("MINUTE: " + calendarget(CalendarMINUTE));

Systemoutprintln("SECOND: " + calendarget(CalendarSECOND));

Systemoutprintln("MILLISECOND: " + calendarget(CalendarMILLISECOND));

Systemoutprintln("ZONE_OFFSET: " + (calendarget(CalendarZONE_OFFSET)/(60601000)));

Systemoutprintln("DST_OFFSET: " + (calendarget(CalendarDST_OFFSET)/(60601000)));

Systemoutprintln("Current Time, with hour reset to 3");

calendarclear(CalendarHOUR_OF_DAY); // so doesn't override

calendarset(CalendarHOUR, 3);

Systemoutprintln("ERA: " + calendarget(CalendarERA));

Systemoutprintln("YEAR: " + calendarget(CalendarYEAR));

Systemoutprintln("MONTH: " + calendarget(CalendarMONTH));

Systemoutprintln("WEEK_OF_YEAR: " + calendarget(CalendarWEEK_OF_YEAR));

Systemoutprintln("WEEK_OF_MONTH: " + calendarget(CalendarWEEK_OF_MONTH));

Systemoutprintln("DATE: " + calendarget(CalendarDATE));

Systemoutprintln("DAY_OF_MONTH: " + calendarget(CalendarDAY_OF_MONTH));

Systemoutprintln("DAY_OF_YEAR: " + calendarget(CalendarDAY_OF_YEAR));

Systemoutprintln("DAY_OF_WEEK: " + calendarget(CalendarDAY_OF_WEEK));

Systemoutprintln("DAY_OF_WEEK_IN_MONTH: " + calendarget(CalendarDAY_OF_WEEK_IN_MONTH));

这个问题看似简单,却很麻烦

要考虑的因素太多

要区分大月小月(即一月是30天还是31天 )

要计算是否是闰年 (对2月的特殊处理)

这里附上 对时间的字符截取示例 详见TEST2015BAT

需要注意的还有

以2015-01-01为例

我把月份拆分为0和9

因为加减只能对数字才能使用 否则会意外终止运行

这里你要判断 月份的前一位 是不是 0 (即 09不能视为数字 也不能进行算术)是 0的话只能将9(即月份的第二位)转为数字 转数字的方法是 SET /A

对日的处理一样 还要注意 2015-01-01 的前一天是2014-12-31 这里也要处理

希望能对你要说帮助

DateTime time = DateTimeNowAddDays(-1); //此为datetime类型的

string str = timeToString("yyyy-MM-dd"); //转为string 只留下日期不要时间的

使用下面的代码就可以得到前一天的日期:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

@echo off

rem 计算指定天数之前的日期

set DaysAgo=1

rem 假设系统日期的格式为yyyy-mm-dd

call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays

set /a PassDays-=%DaysAgo%

call :DaysToDate %PassDays% DstYear DstMonth DstDay

set DstDate=%DstYear%-%DstMonth%-%DstDay%

echo %DaysAgo%天的日期是%DstDate%

pause

goto :eof

:DateToDays %yy% %mm% %dd% days

setlocal ENABLEEXTENSIONS

set yy=%1&set mm=%2&set dd=%3

if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)

set /a dd=100%dd%%%100,mm=100%mm%%%100

set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12z-3,j=153m+2

set /a j=j/5+dd+y365+y/4-y/100+y/400-2472633

endlocal&set %4=%j%&goto :EOF

:DaysToDate %days% yy mm dd

setlocal ENABLEEXTENSIONS

set /a a=%1+2472632,b=4a+3,b/=146097,c=-b146097,c/=4,c+=a

set /a d=4c+3,d/=1461,e=-1461d,e/=4,e+=c,m=5e+2,m/=153,dd=153m+2,dd/=5

set /a dd=-dd+e+1,mm=-m/10,mm=12,mm+=m+3,yy=b100+d-4800+m/10

(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)

endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF

js中获取当前时间可以使用new Date(); 而要获取前一天的时间,可以使用当前时间减去一天的毫秒数,得到毫秒数之后然后再转换成时间。 即var yesterdsay = new Date(new Date()getTime() - 86400000); new Date()getTime()用户获取当前时间的毫

如果是问,要取得当前系统日期的前一天,vlaoda 已经回答了,不过稍做修改,可以去除时间。

Dim Y As Date

Y = Format(Now - 1 ,"Short Date")

在数据库 *** 作中,经常会遇到日期或时间类型的数据处理,VB的特点,要构造日期类型常量,要用#号括起来,例如:

Dim D As Date

D = #7/9/2012#

容易错误的是,会用双引号扩起来,我们知道双引号扩起来的是字符类型。

在用VB *** 作数据库进行查询时,若遇到日期类型的查询,例子如下:

要查询出生日期在1982年7月9日至2012年7月9日之间(不包括这两天)的记录,

SQL语句可以是如下:

Select From 数据表名 Where 出生年月>#7/9/1982# And 出生年月<#7/9/2012#"

用某个日期的“时间毫秒戳”减去1000606024,然后化为显示形式即可

比如今天的前一天-昨天

Date d=new Date(SystemcurrentTimeMillis()-1000606024);

Systemoutprintln(d);

显示

Tue Jul 26 11:08:22 CST 2011

用公式

=today()-1

或者 =NOW()-1

并设置单元格为相应的日期格式。

多表相同位置输入相同公式:

例如,点sheet1,然后按住shift健,点下面的sheet3标签,就会同时选中三张工作表,然后在sheet1的H44单元格输入公式,如 =today()-1

然后在下面工作表标签上右键-》取消工作表成组。你就能看到你要的效果。

以上就是关于java怎样获得当前时间的前几天全部的内容,包括:java怎样获得当前时间的前几天、dos命令中,如何取给定日期的前一天的日期、.net中如何获取当前系统日期的前一天等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9535652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存