JAVA的时间类是支持指向早一天或是晚一天,这样就给我们程序开发带来了很大的方便.比如说我们要求昨天或是明天是什么日子就不在辛苦地去算二用到底是多少天,不在想月未或是月初该怎么算.一切交给JDK处理.同样的,我们要求某时间之前或之后一段时间也好算了(这个功能运用得比较广范,如比我要获取前5天的数据用于表).
下面,我们来介绍JAVA时间类
类 Date 表示特定的瞬间,精确到毫秒。
在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。
GregorianCalendar 是一种混合日历,在单一间断性的支持下同时支持儒略历和格里高利历系统,在默认情况下,它对应格里高利日历创立时的格里高利历日期(某些国家/地区是在 1582 年 10 月 15 日创立,在其他国家/地区要晚一些)。
Date 类在后来的JDK差不多已被已废弃了.所以在 Date也能实现指向早一天或是晚一天相对应的方法.
现在我们先看一段实现求前一天的代码:
Calendar 的add(int field, int amount)方法根据日历规则,将指定的(有符号的)时间量添加到给定的日历字段中。其中field可以是Calendar的所有日历字段.(注cal1.set(2000,1,29)设置时间时月是从0开始的)
上面一段代的yestoday 就已经指向了昨天的现在这个时候了.
求时间段一般是在JAVA+数据库完成的
好比说前3天的数据吧(包括今天)
上面的sql就是查前3天的数据(包括今天)的sql了
一般来说查一个时间段的数据是以天为基准,没必要以分秒为基准,所以要SimpleDateFormat 一下.当然到底以什么为基准还得取决于具体需求了.
下面,我们来介绍JAVA时间类
java.lang.Object java.util.Calendar
java.util.GregorianCalendar
|
java.lang.Object java.util.Date |
类 Date 表示特定的瞬间,精确到毫秒。
在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。
GregorianCalendar 是一种混合日历,在单一间断性的支持下同时支持儒略历和格里高利历系统,在默认情况下,它对应格里高利日历创立时的格里高利历日期(某些国家/地区是在 1582 年 10 月 15 日创立,在其他国家/地区要晚一些)。
Date 类在后来的JDK差不多已被已废弃了.所以在 Date也能实现指向早一天或是晚一天相对应的方法.
现在我们先看一段实现求前一天的代码:
Calendar yestoday = Calendar.getInstance();
//cal1.set(2000,1,29);
yestoday.add(Calendar.DATE,-1);
//cal1.set(2000,1,29);
yestoday.add(Calendar.DATE,-1);
上面一段代的yestoday 就已经指向了昨天的现在这个时候了.
求时间段一般是在JAVA+数据库完成的
好比说前3天的数据吧(包括今天)
Calendar cal1 = Calendar.getInstance();
cal1.add(Calendar.DATE,-2);
//cal1.set(2000,1,29);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String towDaysBefore = sdf.format(cal1.getTime());
String today = sdf.format(Calendar.getInstance().getTime());
String sql = "select * from "+tableName+" where time between '"+towDaysBefore
+" and "+today;
cal1.add(Calendar.DATE,-2);
//cal1.set(2000,1,29);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String towDaysBefore = sdf.format(cal1.getTime());
String today = sdf.format(Calendar.getInstance().getTime());
String sql = "select * from "+tableName+" where time between '"+towDaysBefore
+" and "+today;
一般来说查一个时间段的数据是以天为基准,没必要以分秒为基准,所以要SimpleDateFormat 一下.当然到底以什么为基准还得取决于具体需求了.
相关推荐
Java算法题涵盖了许多基础到进阶的编程概念,主要集中在数据结构、算法设计以及逻辑推理上。以下是对这些题目涉及的知识点的详细说明: 1. **兔子问题**(斐波那契数列): - 知识点:斐波那契数列,递归算法。 -...
【程序 6】求两个正整数的最大公约数(GCD)和最小公倍数(LCM)通常使用欧几里得算法(辗转相除法)。对于GCD,用较大的数除以较小的数,然后用余数替换较大的数,重复这个过程,直到余数为0,最后的除数就是GCD。...
【JAVA算法题目集合程序习题】是一系列针对Java编程者设计的练习,旨在提升编程思维能力和代码编写技巧。这些题目涵盖了基础、深入和综合三种难度级别,覆盖了数学、逻辑和数据结构等多个方面。 1. **基础题**: -...
1. **RSA原理**:RSA算法基于数论中的大数因子分解难题,由两个大素数P和Q相乘得到N,然后计算N的欧拉函数φ(N) = (P-1) * (Q-1),选取一个与φ(N)互质的整数E作为公钥的加密指数,再计算E关于φ(N)的模逆数D作为...
在Java编程中,实现中国农历算法是一项技术挑战,因为涉及到复杂的天文计算和历法规则。本文将深入探讨如何使用Java来实现这一功能。 首先,我们需要了解中国农历的基本原理。农历的月分为大月(30天)和小月(29天...
以下是对给定的Java算法题目的详细解析: 1. 正整数分解质因数: 这个题目要求将一个正整数分解成它的质因数。质因数是能整除给定数且大于1的质数。在这个例子中,程序通过一个循环,从2开始尝试除以当前数,如果...
【Java算法练习题初学者】 对于Java初学者来说,掌握基础的算法是非常重要的,这有助于提升编程思维和问题解决能力。下面将详细讲解几个经典的Java算法练习题。 1. **兔子问题**(斐波那契数列): 这是一个经典...
以下是一些基于给定题目所涉及的Java算法知识点: 1. **斐波那契数列**:程序1展示了斐波那契数列的实现,其中`f(x)`函数使用递归方法计算第`x`个月的兔子数量。斐波那契数列的规律是每个数等于前两个数的和。递归...
【程序 15】:排序问题,可以使用冒泡排序、选择排序等简单排序算法,这里是最简单的三数取小法,每次比较并交换相邻的两个数,确保每次之后的第一个数都是当前未排序部分的最小值。 【程序 16】:9乘法口诀表,...
Java算法题目涵盖了许多基础到进阶的编程概念,如递归、循环、数组操作、数学逻辑等。以下是对这些题目涉及知识点的详细说明: 1. **斐波那契数列**(程序1):这是一个经典的递归问题,用于计算斐波那契数列的第n...
【JAVA算法题目集合】 在Java编程中,算法是解决问题的核心,本题集涵盖了基础、深入和综合类的算法习题,旨在提升编程能力和逻辑思维。以下是对这些习题的详细解析: A1. 取两个数的最小公倍数/最大公倍数:可以...
JAVA算法40题练习 本资源涵盖了 JAVA 语言中常用的算法,包括古典问题的解决、素数判断、水仙花数的输出、函数编写、质因数分解、条件运算符的使用、最大公约数和最小公倍数的求解、字符统计、数列求和、完数判断、...
### Java数据结构与算法知识点概览 #### 一、引言 《Java数据结构和算法中文第二版》是一本深入浅出介绍数据结构与算法在Java语言中的应用的专业书籍。作者罗伯特·拉福尔(Robert Lafore)以其轻松幽默的语言风格...
"JAVA算法题" 本资源提供了一个丰富的Java算法题库,包含基础题、深入题和综合题共一百多道。这些题目涵盖了Java基础知识、算法和数据结构、面向对象编程等多个方面,对于初学者来说非常有帮助。 下面是该资源中的...
3. **自定义公式或库**:由于Java标准库并未内置24节气的计算方法,开发者通常需要自定义算法或使用第三方库。算法可能涉及天文计算,如太阳黄经与公历日期的转换。例如,可以利用太阳黄经和地球公转周期(回归年)...
本文将深入探讨C#和Java这两种广泛使用的编程语言中的日期算法,以及如何利用它们来实现一个万年历系统。 首先,C#中的日期处理主要依赖于`System.DateTime`类。这个类提供了丰富的日期和时间操作方法,如获取年、...
在Java编程语言中,日期和时间的处理是一个常见的需求,特别是在开发涉及日历、时间戳、定时任务等应用时。本文将深入探讨Java中的日期类操作,包括日期的加减运算,以及如何利用不同的日期类进行高效的时间管理。 ...
作者通过两天的研究,结合了一些C#的实现思路,完成了这个Java版本的实现。虽然代码可能存在一些不足之处,但对于理解AES的基本原理和Java中的实现细节具有一定的参考价值。 #### 二、AES算法概述 AES算法是一种...
- 斐波那契数列是一个著名的数列,定义如下:第一项和第二项均为1,后续每一项都是前两项之和。即数列为:1, 1, 2, 3, 5, 8, 13, 21, … - 这个数列在自然界、数学、计算机科学等多个领域都有广泛的应用。 #### ...