package test;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * Date和Calendar常用方法,Date很多方法已经弃用,因此以Calendar为主
 * 
 * @author tuzongxun123
 *
 */
public class DateAndCalendarTest {

public static void main(String[] args) {
// 直接用Date获取当前系统时间,结果:Tue May 03 08:25:44 CST 2016
Date date = new Date();

// Date中的许多方法,例如获取某年、某月、某日等,以及设置某年、某月、某日等都不再建议使用,
// 建议使用calendar的各种方法替代,因此便不做记录
// 获取指定日期的毫秒数,常用来比较两个日期的大小。
date.getTime();

// 使用Calendar获取当前系统时间,需要获取Calendar对象后转换成Date输出
Calendar calendar = Calendar.getInstance();

// 这个方法相当于Date中的getTime,获取当前时间的毫秒数
calendar.getTimeInMillis();

// 获取指定日期所在周的第一天的日期,默认的一周的第一天是周日
calendar.getFirstDayOfWeek();

// 返回当前calendar日期所在的年,如2016
calendar.get(1);

// Calendar转Date,输出结果:Tue May 03 09:31:59 CST 2016
Date date2 = calendar.getTime();
System.out.println(date2);

// Calendar设置年、月、日,输出结果:Mon Jun 03 09:31:59 CST 2013
// 相关常用重载方法:calendar.set(year, month, date, hourOfDay, minute);
// calendar.set(year, month, date, hourOfDay, minute, second);参数均为int
calendar.set(2013, 5, 3);
System.out.println(calendar.getTime());

// 使用Calendar设置年,输出结果:Fri Jun 03 09:42:43 CST 2011
calendar.set(Calendar.YEAR, 2011);
System.out.println(calendar.getTime());

// 使用Calendar和数字设置月,注意月份从0开始,代表1月,输出结果:Mon Jan 03 09:45:32 CST 2011
calendar.set(Calendar.MONTH, 0);
System.out.println(calendar.getTime());

// 使用Calendar和自带常量设置月,注意月份从0开始,代表1月,输出结果:Thu Feb 03 09:47:07 CST 2011
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
System.out.println(calendar.getTime());

// 使用Calendar和数字设置日,输出结果:Sat Feb 05 09:48:25 CST 2011
// calendar.set(Calendar.DAY_OF_MONTH, 5)结果一样;
calendar.set(Calendar.DATE, 5);
System.out.println(calendar.getTime());

// 设置小时
calendar.set(Calendar.HOUR, 15);
System.out.println(calendar.getTime());

// 根据毫秒数设置Calendar时间
calendar.setTimeInMillis(0);

// Date转String,输出结果:2016-05-03 09:25:29
String forDate = dateToString(new Date());
System.out.println(forDate);

// String转Date,输出结果:Thu Nov 12 13:23:11 CST 2015
Date strDate = stringToDate("2015-11-12 13:23:11");
System.out.println(strDate);

// Date转Calendar,输出结果:2015
Calendar calendar2 = dateToCalendar(strDate);
System.out.println(calendar2.get(1));

}

/**
* 把指定的date类型时间转换为指定格式的字符串

* @author:tuzongxun
* @Title: dateToString
* @param @param date
* @return void
* @date May 3, 2016 9:09:25 AM
* @throws
*/
static String dateToString(Date date) {
String str = "yyyy-MM-dd hh:mm:ss";
SimpleDateFormat format = new SimpleDateFormat(str);
String dateFormat = format.format(date);
return dateFormat;
}

/**
* 把指定的日期格式的字符串转换成Date类型

* @author:tuzongxun
* @Title: StringToDate
* @param @param string
* @return void
* @date May 3, 2016 9:16:38 AM
* @throws
*/
static Date stringToDate(String string) {
String str = "yyyy-MM-dd hh:mm:ss";
SimpleDateFormat format = new SimpleDateFormat(str);
Date date = new Date();
try {
date = format.parse(string);
} catch (Exception e) {
e.getStackTrace();
}
return date;
}

/**
* 把指定的date类型日期转换成Calendar类型

* @author:tuzongxun
* @Title: dateToCalendar
* @param @param date
* @return void
* @date May 3, 2016 9:13:49 AM
* @throws
*/
static Calendar dateToCalendar(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar;
}
}

Date和Calendar时间操作常用方法及示例的更多相关文章

  1. Calendar时间操作

    1.Calendar是Java提供的一个util类,在java.util中.我们在开发过程中经常遇到,需要对时间进行处理的方式.而Java中Calendar给我们提供了很好的控制方式. 2.我这里主要 ...

  2. Java日期时间操作基础——包含JDK1.8时间操作新特性

    JDK1.7日期时间操作 示例小结 public class DateTest { public static final String FORMAT_DATE = "yyyy-MM-dd& ...

  3. Java8 日期、时间操作

    一.简介 在Java8之前,日期时间API一直被开发者诟病,包括:java.util.Date是可变类型,SimpleDateFormat非线程安全等问题.故此,Java8引入了一套全新的日期时间处理 ...

  4. Java学习关于时间操作的应用类--Date类、Calendar类及其子类

    Date类 Date类封装了当期时间和日期.与Java1.0定义的原始版的Date类相比,Date类发生了本质的变化.在Java1.1发布时,原始版Date类定义的许多功能被移进Calendar类和D ...

  5. Java Calendar 类的时间操作

    Java Calendar 类的时间操作 标签: javaCalendar时间Date 2013-07-30 17:53 140401人阅读 评论(7) 收藏 举报 分类: 所有(165) Java ...

  6. java日期和时间Date、Calendar、SimpleDateFormat

    1       时间和日期 1.1      日期类Date和格式化SimpleDateFormat 日期使用过程中需要将日期Date对象转化为字符串,或者将字符串形式的日期转化为日期Date对象.可 ...

  7. java时间类Date、Calendar及用法

    对于时间类,这篇主要说明各种现实情况下如何取值,怎么定向取值,得到自己想要的时间参数.在java中时间类主要有Date.Calendar,暂时只介绍 java.util.*下的时间类,对于java.s ...

  8. Calendar 日历类的时间操作

    我们经常会涉及到对时间的处理,例如登陆网站,我们会看到网站首页显示XXX,欢迎您!今天是XXXX年....某些网站会记录下用户登陆的时间,比如银行的一些网站,对于这些经常需要处理的问题,Java中提供 ...

  9. Date 时间 日期 常用方法函数

    转载自https://www.cnblogs.com/lcngu/p/5154834.html 一.java.util.Date对象用来表示时间,基本方法如下: Date mDate = new Da ...

随机推荐

  1. 解决php deprecated 的问题

    Deprecated :意思是“不推荐” php 5.3 从一方面来讲,可以说在07年计划PHP6的中的一个pre版本,增加了很多功能,统一了很多语法,使PHP变得更加强大与简洁. 说到统计架构规划, ...

  2. Bool 类型变量的使用

    定义一个bool类型的变量,默认为FALSE的 private bool BHaveBeenTip=false; private void label5_Click(object sender, Ev ...

  3. magento的url中 去掉多余的目录层级

    有时我们需要仅仅显示一层目录的URL路径.而不要出现多个路径的现实,我们可以用以下方法修改: Edit  /app/code/core/Mage/Catalog/Model/Url.php 找到632 ...

  4. IOS中延迟执行的几种方法

    前几天去国美在线面试,就遇到了上面的问题,当时是笔试,只写出来了第一种方法,现在整理了一下. //1.performSelector方法:在当前线程中执行的方法,使用默认模式,并延迟执行@select ...

  5. vs2010设置断点进行调试时不起作用

    1.打开vs2010 2.点击web下的“属性” 3.点击“生成” 4.点击最下方的“高级” 5.在“输出”-调试信息中选择“full”,点击确定按钮即可

  6. 怎么提高sql效率

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  7. Java复习-oop

    我们可理解“纯粹”的面向对象程序设计方法是什么样的:(1) 所有东西都是对象.可将对象想象成一种新型变量:它保存着数据,但可要求它对自身进行操作.理论上讲,可从要解决的问题身上提出所有概念性的组件,然 ...

  8. JDBC连接数据库演示

    今天重新学习了JDBC连接数据库,使用的数据库是Oracle,在运行前已经手动建立了一张t_user表,建表信息如下: create table t_user( card_id ) primary k ...

  9. ”未在本地计算机上注册“microsoft.et.OLEDB.4.0”提供程序。“解决方案大集合

    本人在做一个连接Access数据库的时候,程序扔给我一个如此Bug——“未在本地计算机上注册“microsoft.et.OLEDB.4.0”, 请教度娘,告诉我可能是如下因素: 一.“设置应用程序池默 ...

  10. Spring 4.x Task 和 Schedule 概述(代java配置)

    转载请注明https://zhangzhaoyu.github.io/2016/09/30/spring-task-and-schedule-deep-research/ 摘要 在很多业务场景中,系统 ...