日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 日期正则表达,Android 判断输入的年月日是否合法-正则表达

發布時間:2024/9/19 Android 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 日期正则表达,Android 判断输入的年月日是否合法-正则表达 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

判斷輸入的年月日是否合法的工具類如下,可直接復制粘貼使用:

package com.company.utils;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class ValidDateUtil {

private static final String TAG = ValidDateUtil.class.getSimpleName();

public static boolean validDateTime(String timeStr) {

String format = "((19|20)[0-9]{2})-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01]) "

+ "([01]?[0-9]|2[0-3]):[0-5]?[0-9]:[0-5]?[0-9]";

Pattern pattern = Pattern.compile(format);

Matcher matcher = pattern.matcher(timeStr);

if (matcher.matches()) {

pattern = Pattern.compile("(\\d{4})-(\\d+)-(\\d+).*");

matcher = pattern.matcher(timeStr);

if (matcher.matches()) {

int y = Integer.valueOf(matcher.group(1));

int m = Integer.valueOf(matcher.group(2));

int d = Integer.valueOf(matcher.group(3));

if (d > 28) {

Calendar c = Calendar.getInstance();

c.set(y, m - 1, 1);

int lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);

return (lastDay >= d);

}

}

return true;

} else {

return false;

}

}

}

使用方式如下,因為只判斷年月日,因此時分秒我默認都是00,主要是為了套用SimpleDateFormat的格式:

private long refreshAddTime() {

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

StringBuilder sb = new StringBuilder();

sb.append(mEditYear.getEditableText().toString()).append("-");

sb.append(mEditMonth.getEditableText().toString()).append("-");

sb.append(mEditDay.getEditableText().toString()).append(" ");

sb.append("00").append(":").append("00").append(":").append("00");

Log.d(TAG,"refreshAddTime: contract string: " + sb.toString());

try {

Date addTime = format.parse(sb.toString());

//判斷加入時間是否大于當前時間

if (System.currentTimeMillis() < addTime.getTime()){

ToastUtil.showCustomToast(mContext,mContext.getResources().getString(R.string.add_time_error));

mAddTimeIsOk = false;

return 0;

}

//判斷加入時間是否為有效輸入

if (ValidDateUtil.validDateTime(sb.toString())){

Log.d(TAG,"ValidDateUtil: is valid date!!!!");

mAddTimeIsOk = true;

return addTime.getTime()/1000;

} else {

mAddTimeIsOk = false;

ToastUtil.showCustomToast(mContext,mContext.getResources().getString(R.string.input_add_time_error));

}

} catch (ParseException e) {

mAddTimeIsOk = false;

ToastUtil.showCustomToast(mContext,mContext.getResources().getString(R.string.input_add_time_error));

FoodLog.e(TAG,"add time error!!!!!");

}

return 0;

}

總結

以上是生活随笔為你收集整理的android 日期正则表达,Android 判断输入的年月日是否合法-正则表达的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。