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 - ...
随机推荐
- Linux命令 at cron
at: 可以处理仅执行一次就结束排程的指令.需要atd服务 crontab: 所设定的指令将会循环地一直进行下去.需要crontab服务 at: Ubuntu16.04 默认没有安装atd服务.安装命 ...
- day26:静态方法,类方法和反射
1,包内部不要去尝试应用使用相对导入,一定不会成功的,他不支持这个机制,包内导入时一定要用绝对导入 2,复习接口类,抽象类,Python中没有接口类,有抽象类,抽象类是通过abc模块中的metacla ...
- js除法四舍五入
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- Ubuntu18.04 快速返回桌面 【快捷键】
设置->设备->键盘->窗口->隐藏窗口 :双击重置快捷键
- 将dataframe分割为训练集和测试集两部分
data = pd.read_csv("./dataNN.csv",',',error_bad_lines=False)#我的数据集是两列,一列字符串,一列为0,1的labelda ...
- IP地址子网划分
广播数据包: 要弄清为何需要划分子网,就需要了解网络传输过程中的广播概念. 经过多年的发展,交换机基本替代集线器,成为网络中主要的端终接入网络的基础设备,这也使得广播包发送数量有明显的减少,但交换机一 ...
- python多进程并发和多线程并发和协程
为什么需要并发编程? 如果程序中包含I/O操作,程序会有很高的延迟,CPU会处于等待状态,这样会浪费系统资源,浪费时间 1.Python的并发编程分为多进程并发和多线程并发 多进程并发:运行多个独立的 ...
- React browserHistory.push()传参
1.browserHistory.push({ "pathname":'/interface_log', state: ...
- mac pro换屏指南
https://www.ifixit.com/ 该网站提供了 换屏的详细操作步骤.
- 关于cc.easesinexxx 与 cc.easeexponentiallxxx 的几种效果简单描述
代码样例: var biggerEase = cc.scaleBy(0.7,1.2,1.2).easing(cc.easeSineInOut()) 呈正弦变化 1)CCEaseSineIn ...