package com.chinaitop.depot.intelligent.utils;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtils {

    public static String startTime = " 00:00:00";
    public static String endTime = " 23:59:59";
    //字符串转date
    public static Date stringToData(String str) {
        try {
            return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(str);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    //获取时间
    public static Date getDate() {
        return new Date();
    }

    //date转string
    public static String dateToString(Date time) {
        String dateString = null;
        try {
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            dateString = formatter.format(time);
            return dateString;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    // 获取日期格式化
    public static String formatDate(Date date) {
        SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd");
        return dateTime.format(date);
    }

    // 获取日期格式化
    public static String getCurrentDate() {
        SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式
        return df.format(new Date());
    }

    // 获取日期格式化
    public static String getNYR() {
        SimpleDateFormat dateTime = new SimpleDateFormat("yyyyMMdd");
        return dateTime.format(new Date());
    }

    //字符串转date
    public static Date stringToData(String str,String format) {
        try {
            return new SimpleDateFormat(format).parse(str);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 用于效验粮温导入excel时间字符串效验
     *
     * @param str 时间字符串(yyyy-MM-dd HH:mm:ss)
     * @return boolean
     */
    public static boolean dateStringInterval(String str) {
        boolean flag = false; // 返回
        str = str.trim(); // 去除时间首尾空格
        int ymd = 0; // -符计数器
        int hms = 0; // 英文:计数器
        int ds = 0; // 日和小时中间空格计数器
        // 效验时间
        for (int i = 0; i < str.length(); i++) {
            if (str.codePointAt(i) == 45) { // 英文字符-对应的是45,并查看有几个-
                ymd++;
            } else if (str.codePointAt(i) == 58) { // 英文字符:对应的是58,并查看有几个:
                hms++;
            } else if (str.codePointAt(i) == 32) { // 日和小时中间空格,空格对应32
                ds++;
            }
        }
        // 时间格式效验,规定格式(yyyy-MM-dd HH:mm:ss)
        if (ymd == 2 && hms == 2 && ds == 1) { // 必须为(yyyy-MM-dd)两个-,和(HH:mm:ss) 两个英文:
            flag = true;
        }
        return flag;
    }

    // 获取日期格式化
    public static String formatDateYMDHMS(Date date) {
        SimpleDateFormat dateTime = new SimpleDateFormat("yyyyMMddHHmmss");
        return dateTime.format(date);
    }

}
