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. POJ-1190-生日蛋糕(深搜,剪枝)

    生日蛋糕 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 23049 Accepted: 8215 Description 7月1 ...

  2. CF550 DIV3

    A - Diverse Strings CodeForces - 1144A A string is called diverse if it contains consecutive (adjace ...

  3. Mysql when case 批量更新

    UPDATE categories SET display_order = CASE id WHEN 1 THEN 3 WHEN 2 THEN 4 WHEN 3 THEN 5 END WHERE id ...

  4. 转载:CentOS7下部署Django项目详细操作步骤

    部署是基于:centos7+nginx+uwsgi+python3+django 之上做的 文章转自:Django中文网        https://www.django.cn/article/sh ...

  5. LeetCode(22)Generate Parentheses

    题目 Given n pairs of parentheses, write a function to generate all combinations of well-formed parent ...

  6. .NET中的缓存实现

    软件开发中最常用的模式之一是缓存,这是一个简单但非常有效的概念,想法是重用操作结果,执行繁重的操作时,我们会将结果保存在缓存容器中,下次我们需要该结果时,我们将从缓存容器中取出它,而不是再次执行繁重的 ...

  7. shell实现ftp命令示例

    一.shell脚本示例: [plain] view plaincopy cd /PATH_YOU_WANT_TO_UPLOAD(DOWNLOAD) ftp -niv <<- EOF ope ...

  8. .net对象的生命周期

    阅读了文章:.NET对象生命周期小结 文章分多个部分,第一部分:介绍了,创建对象时,内存的分配,对象真正被创建,以及经历各阶段垃圾回收的过程. 第二部分,介绍了Finalize与Dispsose方法.

  9. NYOJ-481平衡字符串

    平衡字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 给你一定长度的字符串.字符串中只包含26个小写字母,首先我们把字母a-z分为2堆(a--m)和(n--z),判 ...

  10. POJ 1236 学校网络间的强连通

    题目大意: N个学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输.问题1:初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件.问题2:至少需要添加几条 ...