Java中日期格式(String、Date、Calendar)的相互转换
package day20190318; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
/**
* 计算商品保质期并计算优惠时间
* @author Administrator
*
*/
public class ProCalendarDemo { public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Scanner input=new Scanner(System.in);
System.out.print("请输入商品的生产日期:");
String proc=input.next();
System.out.print("请输入商品的保质期(月):");
int exp=input.nextInt();
Date sellDate=specialDay(sdf.parse(proc),exp);
System.out.println("商品的促销日期为:"+sdf.format(sellDate));
}
public static Date specialDay(Date proc,int exp){
Calendar proCal=Calendar.getInstance();//创建Calendar对象
proCal.setTime(proc);//将时间设置为商品的生产日期
//计算出商品的保质期
proCal.add(Calendar.MONTH,exp);
//将时间提前两个星期
proCal.add(Calendar.WEEK_OF_MONTH, -2);
//将促销的时间设置到本周星期五
proCal.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);
return proCal.getTime();
}
}
package day20190318; import java.util.Calendar;
/**
* 日期处理
* @author Administrator
*
*/
public class CalendarDemo { public static void main(String[] args) {
//创建Calendar对象
Calendar now=Calendar.getInstance();
now.set(Calendar.MONTH,4);
//获取月份
int m=now.get(Calendar.MONTH);
System.out.println(m);
//Calendar计算
now.add(Calendar.MONTH,3);//增加月份数
int n=now.get(Calendar.MONTH);
System.out.println(n);
System.out.println(now.getTime());
} }
package day20190318; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 日期字符串格式化,字符串转换为日期
* @author Administrator
*
*/
public class SdfDateDemo { public static void main(String[] args) throws ParseException {
Date now=new Date();
//创建日期格式化对象
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String dateInfo=sdf.format(now);
System.out.println(dateInfo);
//将日期的字符串转换为date
SimpleDateFormat adf=new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
Date date=adf.parse("2018/05/04 10:30:12");
System.out.println(date);
} }
如果想要直接获取系统时间的话,这里提供一种较常用的实现方法:
import java.util.Date;
import java.text.SimpleDateFormat; public class NowString {
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
System.out.println(df.format(new Date()));// new Date()为获取当前系统时间
}
}
另附上一道思考题:
根据员工入职时间和合同期计算下一次签订合同时间。
a.入职日期为指定格式字符串。yyyy-MM-dd
b.合同期单位为月
c.签订合同日期为到期前前一个月份的工作日(遇到周六、日顺延到下周一)
d.返回制定格式的字符串。 yyyy/MM/dd。
思
考
时
间
下面是我的想法:
package day20190318; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner; public class StaffContract { public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Scanner input=new Scanner(System.in);
System.out.print("请输入签订合同时间:");
String startCal=input.next();
System.out.print("请输入合同期(月):");
int month=input.nextInt();
Date sellDate=SpecialDay(sdf.parse(startCal),month);
System.out.println("续签合同日期为:"+sdf.format(sellDate));
}
public static Date SpecialDay(Date start,int month){
//调用工厂方法
Calendar startCal=Calendar.getInstance();
startCal.setTime(start);
startCal.add(Calendar.MONTH,month);
startCal.add(Calendar.MONTH,-1);
if(startCal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){
startCal.add(Calendar.DAY_OF_WEEK,+2);
return startCal.getTime();
}else if(startCal.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
startCal.add(Calendar.DAY_OF_WEEK, +1);
return startCal.getTime();
}else
return startCal.getTime();
}
}
思维导图:


日期符号格式:

Java中日期格式(String、Date、Calendar)的相互转换的更多相关文章
- Java时间日期格式转换Date转String和String转Date
Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @ ...
- java中日期格式的转换和应用
java中主要有3个类用于日期格式转换 DateFormat .SimpleDateFormat.Calendar SimpleDateFormat函数的继承关系: java.lang.Obje ...
- JAVA中日期格式转换各个字母代表含义
G Era 标志符 Text AD y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 w 年中的周数 Number 27 W ...
- Java中如何将String转成Date
Java中如何将String转成Date 最近在开发Json数据反序列化为Java对象的时候发现spring mvc 和 Jackson 对Date类型对支持不是特别好,虽然在Java对象序列化为Js ...
- 【Java】【9】String Date Calendar之间的转换
前言: 1, Calendar 转化 String 2, Calendar 转化 Date 3,Date 转化 String 4,Date 转化 Calendar 5,String 转化 Calend ...
- [java]转:String Date Calendar之间的转换
String Date Calendar之间的转换 String Date Calendar 1.Calendar 转化 String Calendar calendat = Calendar.ge ...
- java中日期常用
Java中日期的几种常见操作 —— 取值.转换.加减.比较 Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几 ...
- 聊聊 Java 中日期的几种常见操作 —— 取值、转换、加减、比较
Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提 ...
- 【转】JAVA 8 日期/时间(Date Time)API指南
前言 本来想写下Java 8的日期/时间API,发现已经有篇不错的文章了,那就直接转载吧~ PS:主要内容没变,做了部分修改. 原文链接: journaldev 翻译: ImportNew.com - ...
随机推荐
- Digest of Overview of Linux Kernel Security Features
Linux kernel Security: I. DAC: Discretionary Access Control, the core security model of UNIX. II. PO ...
- python 科学计算与可视化
一.Numpy 库 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 引用: import ...
- flask基础一
一:flask认知 flask 短小精悍,可扩展强 flask 所有扩展的网址,flask.pocoo.org/externsions 有别于其他的web框架的地方:flask做了一个上下文管理机制 ...
- json和pickle模块
import pickleimport json data = {'k1': 123, 'k2': 'Hello'}print(type(data))# p_str = pickle.dumps(da ...
- 什么是一致性Hash算法?
一.Redis集群的使用 我们在使用Redis的时候,为了保证Redis的高可用,提高Redis的读写性能,最简单的方式我们会做主从复制,组成Master-Master或者Master-Slave的形 ...
- react学习过程中遇到的错误记录
1.App.js的代码如下: import React, { Component } from 'react'; import Test from './components/Test.jsx'; i ...
- afn3.0源码解析---AFURLRequestSerialization
AFHTTPRequestSerialization: @方法1 - (NSMutableURLRequest *)requestWithMethod:(NSString *)method URLSt ...
- Linux shell编程:状态变量
四大特殊状态变量:$?. $$. $!. $_ $?的作用是:获取执行上一个指令的执行状态返回值,返回0表示上一个命令或者程序执行成功,返回的值为非0则表示上一个命令执行失败. $$的作用是:获取当前 ...
- 时序图中的生命线与类绑定(EA)
使用时序图时序图( Sequence Diagram)时,有时候在起初拖放放的对象生命线未绑定相关的类. 如果: 但在后期需要和类进行绑定. 那么需要如下设置,右键你要关联的对象生命线,选择Advan ...
- python迭代-如何对迭代器做切片操作
如何对迭代器做切片操作 问题举例 读取某个文件内容的100~300行内容,我们是否可以使用 类似列表切片的方式得到一个100~300行文件内容的生成器 分析 列表的切片操作其实是在重载方法__getI ...