Java中的日期操作
在日志中常用的记录当前时间及程序运行时长的方法:
public void inject(Path urlDir) throws Exception {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");long start = System.currentTimeMillis();LOG.info("InjectorJob: starting at " + sdf.format(start));LOG.info("InjectorJob: Injecting urlDir: " + urlDir);run(ToolUtil.toArgMap(Nutch.ARG_SEEDDIR, urlDir));long end = System.currentTimeMillis();LOG.info("Injector: finished at " + sdf.format(end) + ", elapsed: "+ TimingUtil.elapsedTime(start, end));}
关键点是:
1、定义日期显示格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2、获取当前时间
long start = System.currentTimeMillis();
3、使用某种格式显示当前时间
LOG.info("InjectorJob: starting at " + sdf.format(start));
以下内容转载自:http://lavasoft.blog.51cto.com/62575/52975/
下面是一个Date类的综合实例:
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-11-30
* Time: 8:45:44
* 日期测试
*/
public class TestDate {
public static void main(String args[]) {
TestDate nowDate = new TestDate();
nowDate.getSystemCurrentTime();
nowDate.getCurrentDate();
}
/**
* 获取系统当前时间
* System.currentTimeMillis()返回系统当前时间,结果为1970年1月1日0时0分0秒开始,到程序执行取得系统时间为止所经过的毫秒数
* 1秒=1000毫秒
*/
public void getSystemCurrentTime() {
System.out.println("----获取系统当前时间----");
System.out.println("系统当前时间 = " + System.currentTimeMillis());
}
/**
* 通过Date类获取当前日期和当前时间
* date.toString()把日期转换为dow mon dd hh:mm:ss zzz yyyy
*/
public void getCurrentDate() {
System.out.println("----获取系统当前日期----");
//创建并初始化一个日期(初始值为当前日期)
Date date = new Date();
System.out.println("现在的日期是 = " + date.toString());
System.out.println("自1970年1月1日0时0分0秒开始至今所经历的毫秒数 = " + date.getTime());
}
}
系统当前时间 = 1196413077278
----获取系统当前日期----
现在的日期是 = Fri Nov 30 16:57:57 CST 2007
自1970年1月1日0时0分0秒开始至今所经历的毫秒数 = 1196413077278
Process finished with exit code 0
字母
|
日期或时间元素
|
表示
|
示例
|
G
|
Era 标志符
|
Text
|
AD
|
y
|
年
|
Year
|
1996; 96
|
M
|
年中的月份
|
Month
|
July; Jul; 07
|
w
|
年中的周数
|
Number
|
27
|
W
|
月份中的周数
|
Number
|
2
|
D
|
年中的天数
|
Number
|
189
|
d
|
月份中的天数
|
Number
|
10
|
F
|
月份中的星期
|
Number
|
2
|
E
|
星期中的天数
|
Text
|
Tuesday; Tue
|
a
|
Am/pm 标记
|
Text
|
PM
|
H
|
一天中的小时数(0-23)
|
Number
|
0
|
k
|
一天中的小时数(1-24)
|
Number
|
24
|
K
|
am/pm 中的小时数(0-11)
|
Number
|
0
|
h
|
am/pm 中的小时数(1-12)
|
Number
|
12
|
m
|
小时中的分钟数
|
Number
|
30
|
s
|
分钟中的秒数
|
Number
|
55
|
S
|
毫秒数
|
Number
|
978
|
z
|
时区
|
General time zone
|
Pacific Standard Time; PST; GMT-08:00
|
Z
|
时区
|
RFC 822 time zone
|
-0800
|
import java.util.Locale;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-11-30
* Time: 11:20:58
* To change this template use File | Settings | File Templates.
*/
public class TestSimpleDateFormat {
public static void main(String args[]) throws ParseException {
TestSimpleDateFormat test = new TestSimpleDateFormat();
test.testDateFormat();
}
public void testDateFormat() throws ParseException {
//创建日期
Date date = new Date();
//创建不同的日期格式
DateFormat df1 = DateFormat.getInstance();
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE");
DateFormat df3 = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA); //产生一个指定国家指定长度的日期格式,长度不同,显示的日期完整性也不同
DateFormat df4 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 EE", Locale.CHINA);
DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EEEEEE", Locale.US);
DateFormat df6 = new SimpleDateFormat("yyyy-MM-dd");
DateFormat df7 = new SimpleDateFormat("yyyy年MM月dd日");
//将日期按照不同格式进行输出
System.out.println("-------将日期按照不同格式进行输出------");
System.out.println("按照Java默认的日期格式,默认的区域 : " + df1.format(date));
System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE ,系统默认区域 :" + df2.format(date));
System.out.println("按照日期的FULL模式,区域设置为中文 : " + df3.format(date));
System.out.println("按照指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE ,区域为中文 : " + df4.format(date));
System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE ,区域为美国 : " + df5.format(date));
System.out.println("按照指定格式 yyyy-MM-dd ,系统默认区域 : " + df6.format(date));
//将符合该格式的字符串转换为日期,若格式不相配,则会出错
Date date1 = df1.parse("07-11-30 下午2:32");
Date date2 = df2.parse("2007-11-30 02:51:07 星期五");
Date date3 = df3.parse("2007年11月30日 星期五");
Date date4 = df4.parse("2007年11月30日 02时51分18秒 星期五");
Date date5 = df5.parse("2007-11-30 02:51:18 Friday");
Date date6 = df6.parse("2007-11-30");
System.out.println("-------输出将字符串转换为日期的结果------");
System.out.println(date1);
System.out.println(date2);
System.out.println(date3);
System.out.println(date4);
System.out.println(date5);
System.out.println(date6);
}
}
按照Java默认的日期格式,默认的区域 : 07-11-30 下午5:04
按照指定格式 yyyy-MM-dd hh:mm:ss EE ,系统默认区域 :2007-11-30 05:04:10 星期五
按照日期的FULL模式,区域设置为中文 : 2007年11月30日 星期五
按照指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE ,区域为中文 : 2007年11月30日 05时04分10秒 星期五
按照指定格式 yyyy-MM-dd hh:mm:ss EE ,区域为美国 : 2007-11-30 05:04:10 Friday
按照指定格式 yyyy-MM-dd ,系统默认区域 : 2007-11-30
-------输出将字符串转换为日期的结果------
Fri Nov 30 14:32:00 CST 2007
Fri Nov 30 02:51:07 CST 2007
Fri Nov 30 00:00:00 CST 2007
Fri Nov 30 02:51:18 CST 2007
Fri Nov 30 02:51:18 CST 2007
Fri Nov 30 00:00:00 CST 2007
Process finished with exit code 0
import java.text.SimpleDateFormat;
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2007-11-30
* Time: 15:06:57
* Calendar的使用测试
*/
public class TestCalendar {
public static void main(String args[]) {
TestCalendar testCalendar = new TestCalendar();
testCalendar.testCalendar();
}
public void testCalendar() {
//创建Calendar的方式
Calendar now1 = Calendar.getInstance();
Calendar now2 = new GregorianCalendar();
Calendar now3 = new GregorianCalendar(2007, 10, 30);
Calendar now4 = new GregorianCalendar(2007, 10, 30, 15, 55); //陷阱:Calendar的月份是0~11
Calendar now5 = new GregorianCalendar(2007, 10, 30, 15, 55, 44);
Calendar now6 = new GregorianCalendar(Locale.US);
Calendar now7 = new GregorianCalendar(TimeZone.getTimeZone("GMT-8:00"));
//通过日期和毫秒数设置Calendar
now2.setTime(new Date());
System.out.println(now2);
now2.setTimeInMillis(new Date().getTime());
System.out.println(now2);
//定义日期的中文输出格式,并输出日期
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 E", Locale.CHINA);
System.out.println("获取日期中文格式化化输出:" + df.format(now5.getTime()));
System.out.println();
System.out.println("--------通过Calendar获取日期中年月日等相关信息--------");
System.out.println("获取年:" + now5.get(Calendar.YEAR));
System.out.println("获取月(月份是从0开始的):" + now5.get(Calendar.MONTH));
System.out.println("获取日:" + now5.get(Calendar.DAY_OF_MONTH));
System.out.println("获取时:" + now5.get(Calendar.HOUR));
System.out.println("获取分:" + now5.get(Calendar.MINUTE));
System.out.println("获取秒:" + now5.get(Calendar.SECOND));
System.out.println("获取上午、下午:" + now5.get(Calendar.AM_PM));
System.out.println("获取星期数值(星期是从周日开始的):" + now5.get(Calendar.DAY_OF_WEEK));
System.out.println();
System.out.println("---------通用星期中文化转换---------");
String dayOfWeek[] = {"", "日", "一", "二", "三", "四", "五", "六"};
System.out.println("now5对象的星期是:" + dayOfWeek[now5.get(Calendar.DAY_OF_WEEK)]);
System.out.println();
System.out.println("---------通用月份中文化转换---------");
String months[] = {"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"};
System.out.println("now5对象的月份是: " + months[now5.get(Calendar.MONTH)]);
}
}
java.util.GregorianCalendar[time=1196414388324,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2007,MONTH=10,WEEK_OF_YEAR=48,WEEK_OF_MONTH=5,DAY_OF_MONTH=30,DAY_OF_YEAR=334,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=5,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=19,SECOND=48,MILLISECOND=324,ZONE_OFFSET=28800000,DST_OFFSET=0]
获取日期中文格式化化输出:2007年11月30日 03时55分44秒 星期五
--------通过Calendar获取日期中年月日等相关信息--------
获取年:2007
获取月(月份是从0开始的):10
获取日:30
获取时:3
获取分:55
获取秒:44
获取上午、下午:1
获取星期数值(星期是从周日开始的):6
---------通用星期中文化转换---------
now5对象的星期是:五
---------通用月份中文化转换---------
now5对象的月份是: 十一月
Process finished with exit code 0
Java中的日期操作相关推荐
- Java中有关日期的操作,昨天晚上赴约,搞到12点多才回来,今天写这一小段代码都花了一段漫长的时间,哎。。...
Java中有关日期的操作,昨天晚上赴约,搞到12点多才回来,今天写这一小段代码都花了一段漫长的时间,哎.. 代码奉上: /** * * @param date * @return which mont ...
- java怎样将日期本土化_Java中的日期操作
在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...
- java中输入日期_Java中的日期操作
在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...
- Java中获取日期和时间
Java中获取日期和时间 1.创建 java.util.Calendar 实例,调用其 get()方法传入不同的参数即可获 得参数所对应的值 import java.util.Calender; // ...
- 如何在Java中比较日期? [重复]
本文翻译自:How to compare dates in Java? [duplicate] This question already has answers here : 这个问题已经在这里有了 ...
- java中使用lua操作redis
java中使用lua脚本参见我的上一篇文章 lua基础 本篇简单说下java中使用lua操作redis的示例,如下: 先引入jedis <dependency><groupId> ...
- java中Date日期类型的大小比较
java中Date日期类型的大小比较 方法一: java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小 String beginTim ...
- java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较(转)
java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式详解与比较(转) http://wishlife.javaeye.com/blog/181865 posted on 2010-12 ...
- 深圳软件测试培训:java中数组的操作
深圳软件测试培训:java中数组的操作 一.数组最常见的一个操作就是遍历. 因为数组的每个元素都可以通过索引来访问,通过for循环就可以遍历数组. public class M { public st ...
最新文章
- java struts技术_java技术框架之:struts
- 机器学习 二分类分类阈值_分类指标和阈值介绍
- Python 技术篇-不使用os模块遍历文件夹,pathlib库获取直接下级文件和所有下级文件
- anglarjs引入HTML头,请问怎么在html引入angularjs?
- HDFS Safemode问题
- [elixir! #0023] 引擎盖下, `IO.puts` 如何运作
- php中is upload,PHP中,文件上传
- Bing必应来帮忙之-查询虚拟主机服务器上的同IP网站
- Gamemaker小课堂#1 Gamemaker已经安装
- greenplum数据导入到mysql,greenplum数据库常用操作
- 【GB28181】协议详解
- IDM trust Keycloak
- IDEA build时提示错误信息: java: System Java Compiler was not found in classpath
- 来自adobe实验室的最新flash应用:个人调色板kuler
- java毕业设计公司日常考勤系统mybatis+源码+调试部署+系统+数据库+lw
- 12个Material Design风格控件的使用
- 电商大数据——用数据驱动电商和商业案例解析 1
- pytorch学习笔记十二:优化器
- docker使用帮助手册
- GC算法 (标记清除、复制、标记整理、 分代收集) 、 新生代 老年代
热门文章
- 【详细解析】1033 To Fill or Not to Fill (25 分)
- 【测试点分析】1088 三人行 (20分)_29行代码AC
- 16行代码AC_Keeping Rabbits Gym - 102394K(附超时原因)
- sqlserver int转varchar_SQL server 常用数据类型讲解
- C/C++内存分配方式 .
- 无盘机服务器,无盘服务器操作系统
- php上传图片完成后的截图,php实现粘贴截图并完成上传功能
- Linux系统openssl测试指导,Linux管理员必用:OpenSSL服务器测试技巧
- html5 子标题栏,HTML5 建构主义标题栏页面模板
- c语言二叉树的还原,由中序遍历和层次遍历还原二叉树。C语言实现