栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Java练习】日期转换,支持多种格式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Java练习】日期转换,支持多种格式

一、指定时间转换 

将指定日期转换成日历类,然后用函数进行计算,最后统一格式

package test;

import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {

    public static void main(String[] args) throws ParseException {
        // 统一的格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date = "2202 2 3 07:20";
        Date d = parseDate(date);
        if (d != null) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(d);
            calendar.add(Calendar.YEAR, -1);
            Date resDate = calendar.getTime();
            System.out.println("去年的今天:" + sdf.format(resDate));
            calendar.setTime(d);
            calendar.add(Calendar.MONTH, -1);
            resDate = calendar.getTime();
            System.out.println("上月的今天:" + sdf.format(resDate));
        } else {
            System.out.println("未读取到正确时间");
        }
    }

    public static Date parseDate(String inputDate) {
        // 支持下多种格式转换
        Date date = null;
        String[] patterns = { "yyyy MM dd HH:mm", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy/MM/dd HH:mm:ss",
                "yyyy/MM/dd HH:mm", "yyyy年MM月dd日", "yyyy-MM-dd", "yyyy/MM/dd", "yyyyMMdd" };
        SimpleDateFormat df = new SimpleDateFormat();
        for (String pattern : patterns) {
            try {
                df.applyPattern(pattern);
                date = df.parse(inputDate, new ParsePosition(0));
            } catch (Exception e) {
                System.out.println("cuowu:" + e.getMessage());
            }
            if (date != null)
                break;

        }
        return date;
    }
}
 

二、系统时间转换

获取系统当前时间,进行计算输出

package test;

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
 
public class DateUtil {
 
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        System.out.println("当前日期为: "+today);
 
 
        LocalDate nextYears = today.plus(1, ChronoUnit.YEARS);
        LocalDate nextMonths = today.plus(1, ChronoUnit.MONTHS);
        LocalDate lastWeek = today.minus(1, ChronoUnit.WEEKS);
 
        System.out.println("一年后的日期为: "+nextYears);

        System.out.println("一月后的日期为: "+nextMonths);

        System.out.println("一周前的日期为: "+lastWeek);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1035143.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号