Date类型大多数时间分量计算方法已经被Calendar代替

Date经常用法setTime getTime()

new Date();默认获取当前的时间

SimpleDateFormat用来格式化和解析日期的详细类

匹配日期的字符串

y–>年

M–>月

d–>日

E–>星期

a–>上下午

H–>小时(24小时制)

h–>小时(12小时制)

m–>分

s–>秒

格式化Date返回值为String


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String result = sdf.format(new Date());
System.out.println(result);

输出结果:2015-07-22 21:17:43

将String解析为Date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = "2015-07-22 21:21:01";
Date date = sdf.parse(strDate);
System.out.println(date);

输出结果:

Wed Jul 22 21:21:01 CST 2015

Calender封装了日历信息

经常用法:

getInstance()获取一个系统所在地区的一个Calender的子类实现

通经常使用于实例化Calendar

set(int field,int value)设置时间

get(int field)获取时间分量相应值

getActualMaximum(int field)获取时间分量的最大值

add()对时间分量进行计算

setTime和getTime方法设置和获取时间

综合运用:

商品促销计算程序

需求:

用户输入商品生产日期和保质期。通过程序计算促销日期

计算规则:

到保质期前14添所在的周三为促销日

public class PromotionDate {

    public static void main(String[] args) throws Exception {
Calendar cd = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Scanner sc = new Scanner(System.in); System.out.print("请输入生产日期:");
Date productionDate= sdf.parse(sc.nextLine());//接收字符串并转换为日期型
System.out.print("请输入保质期:");
int days = sc.nextInt(); cd.setTime(productionDate);
cd.add(Calendar.DAY_OF_YEAR, (days - 14));
cd.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
String promotionDate = sdf.format(cd.getTime()); //格式化计算后的日期
System.out.println("该产品的促销日期为:"+ promotionDate);
sc.close(); } }

測试结果:

请输入生产日期:2015-01-01

请输入保质期:180

该产品的促销日期为:2015-06-17

Java经常使用日期操作具体解释的更多相关文章

  1. Java中的日期操作

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  2. Java中的日期操作 分类: B1_JAVA 2015-02-16 17:55 6014人阅读 评论(0) 收藏

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  3. java中的日期操作Calendar和Date

    1. Calendar转Date Calendar calendar = Calendar.getInstance(); Date date = calendar.getTime(); 2. Date ...

  4. Date日期操作

    获取年月日时分秒: package com.util; import java.text.DateFormat; import java.util.Calendar; import java.util ...

  5. java日期操作大全

    摘自(http://www.blogjava.net/i369/articles/83483.html) java日期操作 大全 先来一个:  取得指定月份的第一天与取得指定月份的最后一天  http ...

  6. Java路径操作具体解释

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或文件夹在硬盘上真正的路径.(URL和物理路径)比如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://w ...

  7. 【Java基础】Jar包结构结构分析和操作具体解释

    作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell 一 ...

  8. java日期操作常用工具

    java日期操作常用工具 package com..util; import java.sql.Timestamp; import java.text.SimpleDateFormat; import ...

  9. Java常用日期操作

    对java中常用的日期操作进行整理. 1.日期格式化 /* * 日期格式化类(必须掌握) * API: * G Era 标志符 Text AD y 年 Year 1996; 96 M 年中的月份 Mo ...

随机推荐

  1. IDEA下maven工程的classpath

    IDEA开发maven项目,此工程的classpath就是指src/main/java,src/main/resources,src/main/webapp,假如在main文件夹下新建一个文件prop ...

  2. InnoDB INFORMATION_SCHEMA Buffer Pool Tables

    InnoDB INFORMATION_SCHEMA Buffer Pool Tables InnoDB INFORMATION_SCHEMA缓冲池表提供有关InnoDB缓冲池中页面的缓冲池状态信息和元 ...

  3. 树莓派 - MQTT

    安装mosquitto 下载源代码包 wget http://mosquitto.org/files/source/mosquitto-1.5.tar.gz 解压 tar zxfv mosquitto ...

  4. FTS5与DIY

    此文已由作者王荣涛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. FTS5简介 前文已经介绍了FTS3/FTS4,本文着重介绍它们的继任者FTS5. FTS5是在SQLite ...

  5. NYOJ90-整数划分,经典递归思想~~

    整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 将正整数n表示成一系列正整数之和:n=n1+n2+-+nk,  其中n1≥n2≥-≥nk≥1,k≥1.  正整数 ...

  6. AI Gossip

    本文作者:七牛云人工智能实验室-林亦宁原文地址:https://zhuanlan.zhihu.com/p/26168331 什么是智能 回到几万年前的东非大草原,谁能意识到,那个到处被欺负的,被表哥从 ...

  7. HDU 5242 利用树链剖分思想进行贪心

    题目大意: 在给定带权值节点的树上从1开始不回头走到某个底端点后得到所有经过的点的权值后,这些点权值修改为0,到达底部后重新回到1,继续走,问走k次,最多能得到多少权值之和 这其实就是相当于每一次都走 ...

  8. POJ 1379 (随机算法)模拟退火

    题目大意: 给定一堆点,找到一个点的位置使这个点到所有点中的最小距离最大 这里数据范围很小,精度要求也不高,我们这里可以利用模拟退火的方法,随机找到下一个点,如果下一个点比当前点优秀就更新当前点 参考 ...

  9. 【BZOJ1492】货币兑换Cash(CDQ分治)

    题意: 小 Y 最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A 纪 念券(以下简称 A 券)和 B 纪念券(以下简称 B 券).每个持有金券的顾客都有 一个自己的帐户.金券的数目可以是一 ...

  10. CF788E:New task

    n个数字中,每个数有数字A和属性B,每次操作将某个点x的属性B改变为0或1,求满足这样要求的子序列的个数: 下标a<b<c<d<e,而Aa<=Ab=Ac=Ad>=A ...