string long date
package com.example.demoA.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
public class TimeChange {
public static void main(String[] args) {
// TODO Auto-generated method stub
timeChange();
}
public static void timeChange(){
String time1 = "2023-02-18 10:00"+":00";
// 目标:2023-02-18 09:50
System.out.println(getTimeFromString(time1,TIME_YEAR));
System.out.println(getTimeFromString(time1,TIME_MONTH));
System.out.println(getTimeFromString(time1,TIME_DAY));
System.out.println(getTimeFromString(time1,TIME_HOUR));
System.out.println(getTimeFromString(time1,TIME_MINUTE));
System.out.println(getTimeFromString(time1,TIME_SECOND));
long time2 = stringToLong(time1, TIME_FORMAT)-10*60*1000;
String time2String = longToString(time2, TIME_FORMAT);
System.out.println(time2String);
// long startTime = System.currentTimeMillis();
}
// data 转 string
public static String dataToString(Date date, String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
// date 转 long
public static Long dateToLong(Date date){
return date.getTime();
}
// long 转 date
public static Date longToDate(Long timeNumber){
return new Date(timeNumber);
}
// long 转 string
public static String longToString(Long timeNumber, String format){
return dataToString(new Date(timeNumber), format);
}
// string 转 long
public static Long stringToLong(String timeString, String format){
Date abc = stringToDate(timeString, format);
return abc.getTime();
}
// string 转 date
public static Date stringToDate(String timeString, String format){
// 如果字符串为空 或者不符合格式,返回提示!
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date abcd = null;
try {
abcd = sdf.parse(timeString);
} catch (ParseException e) {
e.printStackTrace();
}
return abcd;
}
public static final String TIME_YEAR = "YEAR";
public static final String TIME_MONTH = "MONTH";
public static final String TIME_DAY = "DAY";
public static final String TIME_HOUR = "HOUR";
public static final String TIME_MINUTE = "MINUTE";
public static final String TIME_SECOND = "SECOND";
public static final String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static final String TIME_FORMAT1 = "yyyy-MM-dd HH:mm";
// 一个字符串,返回年月日时分秒
public static int getTimeFromString(String s, String flag){
Integer time = 0;
switch (flag){
case "YEAR":
time = Integer.valueOf(s.substring(0,4) );
break;
case "MONTH":
time = Integer.valueOf(s.substring(5,7) );
break;
case "DAY":
time = Integer.valueOf(s.substring(8,10) );
break;
case "HOUR":
time = Integer.valueOf(s.substring(11,13) );
break;
case "MINUTE":
time = Integer.valueOf(s.substring(14,16) );
break;
case "SECOND":
time = Integer.valueOf(s.substring(17) );
break;
}
return time;
}
//注意HH与hh含认不同,HH表示以24小时制取,hh表示以12小时制取
// 常用的格式的含义,摘自Jdk,注意大小写的含义通常是不同的:
// 字母 含义 示例
// y Year 1996;96 哪一年
// M Month in year J uly;Jul;07 一年中的哪一月
// m Minute in hour 30 一个小时中的第几分钟
// w Week in year 27 一年中的第几个星期
// W Week in month 2 一个月中的第几个星期
// D Day in year 189 一年中的第几天
// d Day in month 10 一个月中的第几天
// H Hour in day (0-23) 0 一天中的第几个小时(24小时制)
// h Hour in am/pm (1-12) 12 一天中上午、下午的第几个小时(12小时制)
// S Millisecond 978 毫秒数
// s Second in minute 55 一分钟的第几秒