java时间类型转换

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                  一分钟的第几秒
    
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值