java时间设置_JAVA中的时间操作
java中的时间操作不外乎这四种情况:
1、获取当前时间
2、获取某个时间的某种格式
3、设置时间
4、时间的运算
好,下面就针对这四种情况,一个一个搞定。
一、获取当前时间
有两种方式可以获得,第一种,使用Date类。
j2SE的包里有两个Date类,一个是java.sql.Date,一个是java.util.Date
这里,要使用java.util.Date。获取当前时间的代码如下
Date date = new Date();
date.getTime();
还有一种方式,使用System.currentTimeMillis();
这两种方式获得的结果是一样的,都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数。
当前的时间得到了,但实际的应用中最后往往不是要用这个long型的东西,用户希望得到的往往是一个时间的字符串,比如“2006年6月18号”,或“2006-06-18”,老外可能希望得到的是“06-18-2006”,诸如此类等等。这就是下一个要解决的问题
二、获取某个时间的某种格式
获取时间的格式,需要用到一个专门用于时间格式的类java.text.SimpleDateFormat。
首先,定义一个SimpleDateFormat变量
SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);
这个构造函数的定义如下:
SimpleDateFormat(String pattern, Locale locale)
第一个参数pattern,我们后面再解释,这里我们使用一个"",第二个参数,是用来设置时区的,这里用到了java.util.Locale这个类,这个类了面定义了很多静态变量,直接拿过来用就OK,我们把时区设置为Locale.SIMPLIFIED_CHINESE,只看名字,这个静态变量的意义已经很清楚了。
接下来我们使用这个SimpleDateFormat把当前时间格式化为一个如下格式的时间字符串“XXXX年XX月XX日_XX时XX分XX秒”,代码:
sdf.applyPattern("yyyy年MM月dd日_HH时mm分ss秒");
String timeStr = sdf.format(new Date());
获取时间格式的函数是format,这个函数的参数是java.util.Date对象,这个没有什么花头。
要说明一下的是这个pattern,所谓的模式。这里,yyyy,MM,dd等,这就是模式。
我们可以在SimpleDateFormat的构造函数中指定模式,比如
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE);
也可以获取时间格式的时候使用applyPattern函数临时指定,上面的例子就是这样。
什么字符代表什么,这是j2se约定好的,设置模式的时候,我们可以使用约定好的字符加上任何我们想要的字符串。
j2se对字符所代表的模式的约定列表如下:
Letter
Date or Time Component
Presentation
G
Era designator
Text
y
Year
Year
M
Month in year
Month
w
Week in year
Number
W
Week in month
Number
D
Day in year
Number
d
Day in month
Number
F
Day of week in month
Number
E
Day in week
Text
a
Am/pm marker
Text
H
Hour in day (0-23)
Number
k
Hour in day (1-24)
Number
K
Hour in am/pm (0-11)
Number
h
Hour in am/pm (1-12)
Number
m
Minute in hour
Number
s
Second in minute
Number
S
Millisecond
Number
z
Time zone
General time zone
Z
Time zone
RFC 822 time zone
三,设置时间
Calendar.getInstance().getTime()即可获取一个Date对象
Calendar.getInstance().add(时间的一个部分,正数代表加,负数代表减)
现在设置时间,推荐 使用java.util.Calendar类来进行操作,因为java.util.Date类很多方法都过时了,
Calendar 类有很多重载的设置时间的方法
我们可以针对于某一项进行设置,也可以同时进行很多设置
void
将给定的日历字段设置为给定值。
void
设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
void
设置日历字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。
void
设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
其中第一个就是给特定的字段设值,后面三个就是针对多个字段赋值
四,时间运算
时间的运算,无外乎就是加加减减,然后比较谁早谁晚而已,这些需求JAVA的API已经帮我们实现的很好了。一般比较时间的可以用如下的方法
abstract void
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
boolean
Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。
boolean
Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。
第一个是给某个字段加上某个数量的时间,虽然这个方法名叫add ,我们要减也是调用它的,只不过我们传入的是负数。
其实JAVA对时间操作的支持还是挺丰富的。希望大家的日常的使用中有更多的发现。
http://www.blogjava.net/hadeslee/archive/2007/09/11/144386.html
一. 获取当前系统时间和日期并格式化输出:
import java.util.Date;
import java.text.SimpleDateFormat;
public class NowString {
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
System.out.println(df.format(new Date()));// new Date()为获取当前系统时间
}
}
二. 在数据库里的日期只以年-月-日的方式输出,可以用下面两种方法:
1、用convert()转化函数:
String sqlst = "select convert(varchar(10),bookDate,126) as convertBookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";
System.out.println(rs.getString("convertBookDate"));
2、利用SimpleDateFormat类:
先要输入两个java包:
import java.util.Date;
import java.text.SimpleDateFormat;
然后:
定义日期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd);
sql语句为:String sqlStr = "select bookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";
输出:
System.out.println(df.format(rs.getDate("bookDate")));
************************************************************
java中获取当前日期和时间的方法
import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class TestDate{
public static void main(String[] args){
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//可以方便地修改日期格式
String hehe = dateFormat.format( now );
System.out.println(hehe);
Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);
}
}
有时候要把String类型的时间转换为Date类型,通过以下的方式,就可以将你刚得到的时间字符串转换为Date类型了。
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date time=null;
try {
time= sdf.parse(sdf.format(new Date()));
} catch (ParseException e) {
e.printStackTrace();
}
java时间设置_JAVA中的时间操作相关推荐
- java jedis使用_Java中使用Jedis操作Redis
Java中使用Jedis操作Redis 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0 ...
- java 中时间计算_java中关于时间的计算
1.描述:在原有时间上增加一个时间差: 代码示例: Date psd = sysDate(); String workTimeP1 = mapP.get("WORK_TIME_") ...
- java pdf库_Java中常用的操作PDF的类库
iText iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给合.使用 ...
- java 不规则 拼图_Java中不一致的操作会扩大规则
java 不规则 拼图 总览 当您在Java中执行一元或二进制运算时,标准行为是使用最宽的操作数(或对于byte , short和char ,使用更大的操作数). 这很容易理解,但是如果考虑最佳类型可 ...
- java喜好设置_Java中使用Preferences 的 API设置用户偏好
Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好.而这些信息个人理解 ...
- java classpath设置_Java中classpath怎么设置
classpath的设置方法:首先点击"我的电脑":然后选择"属性",并找到"高级设置"中的"环境变量":接着在里面的系 ...
- Java jpanel 设置_Java中设置Jpanel的背景
一起学习 1.创建一个类ImagePanel,代码如下 import java.awt.BorderLayout; import javax.swing.JPanel; import java.io. ...
- java jsonobject 赋值_Java中JSONObject相关操作
maven项目pom配置: net.sf.json-lib json-lib 2.4 jdk15 importnet.sf.json.JSONObject;//报文 String report=&qu ...
- c语言编译时间,C语言中关于时间的函数
C语言中关于时间的函数 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.下面我们一 ...
最新文章
- Nginx源码分析--基本数据类型的别名
- Log4j使用详解(log4j.XML格式)——整理
- 重启jboss出现问题:端口被占用
- ASP.NET 配置文件加密
- 中小企业如何用在线CRM留住客户
- life list 2010
- MSPlus DatePicker WebControl FreeVersion 1.1.0906 发布啦!
- Web Session和Cookie
- c++ vector排序_儿童时间管理课6:便利贴时间排序法
- PostgreSQL 之 分区表
- 管理感悟:方案能力与解决问题能力
- Atitit 表达式概论 艾提拉著 目录 1. 表达式分类	2 1.1. 条件表达式 ?:三元符号	2 1.2. 中缀表达式 前缀 后缀表达式	2 1.3. S表达式	2 1.4. 《精通lamb
- 田径运动会管理系统之Java
- 瑞友天翼应用虚拟化系统V6.0之设备重定向
- 无法启动此程序 因为计算机中丢失hypertrm.dll,开机弹出找不到HYPERTRM.dll
- 拟合函数,偏差和方差
- 自备ACM模板 —— 数学篇
- 大数据apache-spark问题总结
- 知识图谱学习(二):电商知识图谱
- 阿昆同学的Java学习日记Day3