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 判断输入的年月日是否合法-正则表达相关推荐
- 判断输入的正则表达式是否符合正则规则
判断输入的正则表达式是否符合正则规则 方法一: const validateRegular=(rulevalue,callback)=>{ if (value !== undefined &am ...
- android 日期时间类,Android 时间与日期操作类
获取本地日期与时间 public String getCalendar() { @SuppressLint("SimpleDateFormat") SimpleDateFormat ...
- android 日期选择图标,android – 如何删除QCalendarWidget中的选定日期矩形和小部件中的小图标...
我正在编写自己的QCalendarWidget实现.我希望日期可以选择,但我不想看默认选择矩形.它看起来像这样: 我的代码: in constructor: setSelectionMode(Sing ...
- android 日期时间类,Android 日期时间等转换工具类
package com.easyder.util; import java.text.SimpleDateFormat; import java.util.Date; /** * 日期时间等转换工具类 ...
- android日期和时间,Android获取手机日期和时间
1.直接调用Calendar类 private int mHour; private int mMinute; private int mYear; private int mMonth; priva ...
- Android日期格式化英文,android – 将日期从默认语言环境转换为英语语言环境
这对你有用 SimpleDateFormat sdf = new SimpleDateFormat("HH mm ss dd MMM ''yy", Locale.ENGLISH); ...
- python判断ip地址是否合法_python实现判断一个字符串是否是合法IP地址的示例
一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:判断一个字符串是否是合法I ...
- aspx 判断字符串是否为decimal_python实现判断一个字符串是否是合法IP地址
一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python#encoding:utf-8 '''__Author__:沂水寒城功能:判断一个字符串是否是合法IP地址 ...
- 转载关于通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端
声明:本文为转载文章 中间部分穿插文字为本人查阅其他资料所得,其目的只是为了加强记忆和方便阅读,并无它意. 通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端.代码如 ...
最新文章
- 使用RSClientPrint直接打印本地RDLC报表
- buu Quoted-printable
- 【NLP】四万字全面详解 | 深度学习中的注意力机制(三)
- SocketIO---bio2---带线程池处理任务
- 准备辞职了,走之前想解决的问题ptr 为空
- java设计模式—工厂模式
- [Javascript] Functor Basic Intro
- ASP.NET程序中 抛出Thread was being aborted. 异常(转)
- Error running Tomcat8: Address localhost:1099 is already in use
- Arcgis重分类无法赋新值为小数
- C#之CAD二次开发笔记(1) 开发环境测试
- coq程序编写好用的IDE推荐
- 蘑菇街测试开发实习生面经
- 浅谈敏捷 - Scrum
- mysql出现core dumped_mysql 段错误 (core dumped)
- 爱的杂篇--掉掉眼泪
- 干货:图像比赛的通用套路有哪些?Kaggle比赛金牌团队为你解答
- Mockito 如何编写实现代码覆盖率,模拟接口返回的数据
- CCTech:测试同学如何参与codereview?
- 分数的四则运算及化简(C语言实现)
热门文章
- Java中调用Oracle中的存储过程的单元测试代码
- mysql 的独占锁和排它锁_MySQL的排它锁与共享锁
- dt测试软件的学习心得,无线网络优化dt测试心得_适合新手入门,高手进阶_5年项目经验实战经验.docx...
- 目标检测数据集MSCOCO简介
- 基于深度学习的CT图像肺结节自动检测(系列放在一起)
- 如何使用Soft-NMS实现目标检测并提升准确率
- 纯C++版的Faster-Rcnn(通过caffe自定义RPN层实现)
- 深度学习中的激活函数与梯度消失
- 4G U盘版64位bitcoin专用挖矿操作系统
- linux系统下如何禁止ping命令或允许ping命令的方法