JAVA常规字符串⽇期格式⾃动识别
/**
* Test.java
*/
package com.dc.eurekaserver;
ParseException;
SimpleDateFormat;
import Pattern;
/**
* @Description: TODO
* @author dc
* @date: 2018年9⽉4⽇
*/
public class Test {
public static void main(String[] args) throws ParseException {
System.out.println(getDateFormat("01-12"));
System.out.println(getDateFormat("2018-01"));
System.out.println(getDateFormat("2018-01-12"));
System.out.println(getDateFormat("11:22"));
System.out.println(getDateFormat("2018-01-12 11:22:33"));
System.out.println(getDateFormat("2018-01-12 11:22:33:333"));
System.out.println(getDateFormat("11时22分33秒333毫秒"));
System.out.println(getDateFormat("2018/01/12 11时22分33秒333毫秒"));
System.out.println(getDateFormat("当前2018年01⽉12⽇⽇ 11时22分33秒333分"));
}
/**
* 常规⾃动⽇期格式识别
* @param str 时间字符串
* @return Date
* @author dc
*/
private static String getDateFormat(String str) {
boolean year = false;
Pattern pattern = Patternpile("^[-\\+]?[\\d]*$");
if(pattern.matcher(str.substring(0, 4)).matches()) {
year = true;
}
StringBuilder sb = new StringBuilder();
int index = 0;
if(!year) {
ains("⽉") || ains("-") || ains("/")) {
if(Character.isDigit(str.charAt(0))) {
index = 1;
}
}else {
index = 3;
}
}
for (int i = 0; i < str.length(); i++) {
char chr = str.charAt(i);
if(Character.isDigit(chr)) {
if(index==0) {
sb.append("y");
}
if(index==1) {
sb.append("M");
}
if(index==2) {
sb.append("d");
sb.append("d");
}
if(index==3) {
sb.append("H");
}
if(index==4) {
sb.append("m");
}
if(index==5) {
sb.append("s");
}
if(index==6) {
sb.append("S");
}
}else {
if(i>0) {
char lastChar = str.charAt(i-1); if(Character.isDigit(lastChar)) { index++;
}
}
sb.append(chr);
}java时间日期格式转换
}
String();
}
}
运⾏结果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论