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 - ...
随机推荐
- js_js流程控制
1.表达式.语句 2.流程控制 顺序 分支 循环 分支 循环结构都有一个条件 循环结构:重复做一件事 3元运算符 switch语句(用来做相等性判断--优先考虑) 注意: 1.switch ...
- NTSC PAL 介绍
NTSC-J是日本地区的模拟 电视系统和视频显示标准,于2011年7月24日在全国47个县中的44个地区停止运营.模拟广播于2012年3月31日在2011年Tōhoku摧毁的三个县停止地震和海啸(岩手 ...
- transform:translate(-50%,-50%)实现水平垂直居中
.content { padding:10px; background:green; color:#fff; position:absolute; top:50%; ...
- 阿里云Ubuntu 18.04安装图形界面
#!/bin/bash #更新软件库 apt-get update #升级软件 apt-get upgrade #安装ubuntu桌面系统 apt-get install ubuntu-desktop
- Jmeter-----参数配置
参数化配置: 设置为3个线程后,三个用户均能运行
- 学习STM32单片机,从菜鸟到牛人就是这样简单(配视频资料)
我想说,为了学习单片机而去学习单片机的思路不对. 你问,如何系统地入门学习stm32? 本身就是一个错误的问题.假如你会使用8051 , 会写C语言,那么STM32本身并不需要刻意的学习. 你要考虑的 ...
- rand和srand的用法
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明. rand(产生随机数)表头文件: #include<stdlib.h> ...
- Android 跨进程数据共享
Android 开发过程中,基于功能隔离.进程安全.进程保活等等考虑,我们经常需要为应用划分进程,然后不得不面临跨进程通信和跨进程共享数据的挑战. 跨进程通信 相对来说,跨进程通信比较简单,常用的方式 ...
- vue js判断长按触发及手指的上滑、下滑、左滑、又滑
<span class="btn" @touchstart="touchstart()" @touchmove="touchmove()&quo ...
- linux c tcp p2p
江湖上一直都有这位哥哥的传说,也有很多人说自己就他的真身! 但是... 今天分享一下TCP连接的P2P demo,江湖的规矩也要与时俱进... ———————————————————————————— ...