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. 常用字符串匹配算法(brute force, kmp, sunday)

    1. 暴力解法 // 暴力求解 int Idx(string S, string T){ // 返回第一个匹配元素的位置,若没有匹配的子串,则返回-1 int S_size = S.length(); ...

  2. cmd启动MySQL服务器发生错误

    Mysql net start mysql启动,提示发生系统错误 5 拒绝访问  原文:https://blog.csdn.net/angel_guoo/article/details/7919037 ...

  3. pwnable.kr cmd1之write up

    看一下源代码: #include <stdio.h> #include <string.h> int filter(char* cmd){ ; r += strstr(cmd, ...

  4. LeetCode(12)Integer to Roman

    题目 Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from ...

  5. Nowcoder 106 C.Professional Manager(统计并查集的个数)

    题意: 给出四种操作: 1. 合并u,v两棵树 2. 从u所在的集合中删除u 3. 询问u所在集合有多少颗树 4. 询问 u,v是否在同一个集合 分析: 对于删除操作, 只要新开一个点代替原来的点即可 ...

  6. 【MySQL】性能优化之 Index Condition Pushdown

    一 概念介绍    Index Condition Pushdown (ICP)是MySQL 5.6 版本中的新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式.a 当关闭ICP时,index ...

  7. PTA 01-复杂度1 最大子列和问题 (20分)

    题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/709 5-1 最大子列和问题   (20分) 给定KK个整数组成的序列{ N_1N​1​ ...

  8. IntelliJ IDEA平台下JNI编程—HelloWorld篇

    转载请注明出处:[huachao1001的专栏:http://blog.csdn.net/huachao1001/article/details/53906237] JNI(Java Native I ...

  9. [Vijos] 弱弱的战壕

    描述 永恒和mx正在玩一个即时战略游戏,名字嘛~~~~~~恕本人记性不好,忘了-_-b. mx在他的基地附近建立了n个战壕,每个战壕都是一个独立的作战单位,射程可以达到无限(“mx不赢定了?!?”永恒 ...

  10. BZOJ1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列

    n<=100000个数表示每头牛在K<=30种物品的选取情况,该数在二进制下某位为0表示不选1表示选,求一个最大的区间使区间内选择每种物品的牛一样多. 数学转化,把不同状态间单变量的关系通 ...