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 - ...
随机推荐
- mysql - Truncated incorrect DOUBLE value: 'undefined'
mysql - Truncated incorrect DOUBLE value: 'undefined' 我是怎么遇到这个问题的? 我要从多个表里,查询统计数据,保存到统计表里,需要执行下面这种结构 ...
- java_基础_类加载
类加载:Java命令的作用是启动虚拟机,虚拟机通过输入流,从磁盘上将字节码文件(.class文件)中的内容读入虚拟机,并保存起来的过程就是类加载. 类加载特性 : *在虚拟机的生命周期中一个 ...
- Linux系统的命令应该如何记?
Linux入门篇: 很多刚入门的同学,就像无头的苍蝇一样,到处找视频.书籍.网站帖子之类的学习方式,视频虽然讲得详细,但是时间的投入也是巨大的,播放时间,练习时间,加起来很吓人,其实啊很少有人能坚持把 ...
- Collections类
1:一个类对象之间的比较两种方法 1)实现Comparator<String>类并且从写Comparator类中的compare方法, public class A implements ...
- 树莓派与Linux系统之间文件传输
最近因为要学习Python,于是把放在家里接了一年灰的树莓派又给搜出来了,刚买那会也捣鼓了好一阵子, 基本操作都学会了,但现在又忘光了,只能又从头开始搞了,首先第一个要解决的是怎么把文件从电脑传输到树 ...
- python写算法中的栈
########### 栈的使用 ############### class StackFullError(Exception): pass class StackEmptyError(Excepti ...
- tensorflow 基本内容
tensorflow的结构 1.使用图(graphs)来表示计算任务 2.在被称之为会话(Session)的上下文(context)中执行图 3.使用tensor表示数据 4.通过变量(Variabl ...
- angular开发手机网页小记
禁用滑动事件,阻止触发浏览器翻页行为 <html lang="en" style="height:100%" ontouchmove="(f ...
- 【LeetCode每天一题】Add Binary(二进制加法)
Given two binary strings, return their sum (also a binary string).The input strings are both non-emp ...
- js 获取鼠标的手势方向角度
需要获取鼠标的移动角度 1.mousedown 确定起始点 2.mousemove 确立相关点 3.先计算两点的斜率,然后根据三角函数和反三角函数.转换为角度 <!DOCTYPE html> ...