判断输入的年月日是否合法的工具类如下,可直接复制粘贴使用:

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 判断输入的年月日是否合法-正则表达相关推荐

  1. 判断输入的正则表达式是否符合正则规则

    判断输入的正则表达式是否符合正则规则 方法一: const validateRegular=(rulevalue,callback)=>{ if (value !== undefined &am ...

  2. android 日期时间类,Android 时间与日期操作类

    获取本地日期与时间 public String getCalendar() { @SuppressLint("SimpleDateFormat") SimpleDateFormat ...

  3. android 日期选择图标,android – 如何删除QCalendarWidget中的选定日期矩形和小部件中的小图标...

    我正在编写自己的QCalendarWidget实现.我希望日期可以选择,但我不想看默认选择矩形.它看起来像这样: 我的代码: in constructor: setSelectionMode(Sing ...

  4. android 日期时间类,Android 日期时间等转换工具类

    package com.easyder.util; import java.text.SimpleDateFormat; import java.util.Date; /** * 日期时间等转换工具类 ...

  5. android日期和时间,Android获取手机日期和时间

    1.直接调用Calendar类 private int mHour; private int mMinute; private int mYear; private int mMonth; priva ...

  6. Android日期格式化英文,android – 将日期从默认语言环境转换为英语语言环境

    这对你有用 SimpleDateFormat sdf = new SimpleDateFormat("HH mm ss dd MMM ''yy", Locale.ENGLISH); ...

  7. python判断ip地址是否合法_python实现判断一个字符串是否是合法IP地址的示例

    一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:判断一个字符串是否是合法I ...

  8. aspx 判断字符串是否为decimal_python实现判断一个字符串是否是合法IP地址

    一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python#encoding:utf-8 '''__Author__:沂水寒城功能:判断一个字符串是否是合法IP地址 ...

  9. 转载关于通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端

    声明:本文为转载文章  中间部分穿插文字为本人查阅其他资料所得,其目的只是为了加强记忆和方便阅读,并无它意. 通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端.代码如 ...

最新文章

  1. python5_python5
  2. IOS开发基础知识--碎片34
  3. FatFs文件系统的移植
  4. c语言编写的每个函数都可以进行独立的编译,2017年辽宁师范大学计算机与信息技术学院836C语言程序设计考研冲刺密押题...
  5. 二进制文件和文本文件的区别
  6. 电机振动噪声(NVH)——整数槽分数槽谐波分析补充
  7. vscode调用keil-MDK编译程序
  8. Python爬虫——新浪微博登陆
  9. elasticsearch 学习之 搭建简单的elasticsearch多节点服务器
  10. 要成为云架构师需要学什么技能?
  11. Spring漫画学习笔记(二) 什么是BeanFactory
  12. 高德地图安卓 拖拽选点_不止微信支付宝 高德地图正式上线小程序入口
  13. 彻底删除2345输入法
  14. 概率论-分布函数(高斯分布、复高斯分布、瑞丽分布、Nakagami-m分布、均匀分布、卡方分布)
  15. 支持多线程编程的Web Workers
  16. java sdk他edk de区别_EDK笔记——自定义IP核
  17. LINUXmint18.2添加国内源以及安装各种流行软件(网易云音乐,搜狗,谷歌浏览器,virtualbox虚拟机)
  18. 上传下载永不限速之文叔叔
  19. 服务端分布式缓存与本地缓存
  20. 【音乐理论】音与音高 ( 音区 | 小字一组 | 小字组 | 大字组 )

热门文章

  1. 处理字符串_7_判断字符串是字符串数字型
  2. java list 比较_Java中List的五种去重方法及效率对比,你都用对了吗?
  3. 阿里云 docker php mysql_PHP开发环境02 - 阿里云Ubuntu使用Docker配置PHP环境(只限于学习)...
  4. jaVa工程师朱璇_使用QTP对Silverlight应用进行自动化测试的研究与实践
  5. Python 中各种imread函数的区别与联系
  6. Docker版本(三)
  7. 库对比工具mysqldiff使用
  8. 【368天】跃迁之路——程序员高效学习方法论探索系列(实验阶段126-2018.02.08)...
  9. centos 7 五笔安装
  10. CentOS 7 安装MySQL 5.6遇到问题及解决方案