正则表达式匹配12小时24小时制时间

1、正则表达式匹配时刻

(1)12小时制-匹配8:10 am或者10:30 pm ...

  • 最简单也是我们最先想到到的应该就是这种正则:[0-9]?[0-9]:[0-9]{2} (am|pm);

  这的确可以满足需求,但是上述正则呢可以匹配99:99 am这种没有意义的数据,如果只是要表示有意义的数据呢??

  • 可以采用这种方式:(1?[0-2]|[1-9]):[0-5][0-9] (am|pm);

(2)24小时制匹配时间

  24小时制我们就需要考虑0这个问题,如03:30;

  我们细细想一下这个问题,24个小时可以分为这三种情况,00-09,10-19,20-23;

  • 按照这个思路我们可以这样写:(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9],如果要是存在3:30这种情况,可以这样写(0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]

  上边这个正则确实满足了需求,但是能否让表达式更加完美一下呢?

  • 正则表达式合并:([01]?[0-9]|2[0-3]):[0-5][0-9]

  除了上面所说的方法,还有另外一种思路也可以实现相同的效果,只是这种方法不大容易想到;

  思路二:将时间分为五种情况,04-09,14-19,00-03,10-13,20-23;

  • ([0-1]?[4-9]|[0-2]?[0-3])

原文地址:https://www.cnblogs.com/gudbd/p/9751977.html

时间: 2024-08-04 21:52:18

正则表达式匹配12小时24小时制时间的相关文章

日期12小时 || 24小时制切换

SimpleDateFormat 12小时制和24小时制的区别是大写为24小时制,小写为12小时制. 使用SimpleDateFormat时格式化时间的 yyyy.MM.dd 为年月日: 如果希望格式化时间为12小时制的,则使用hh:mm:ss: 而如果希望格式化时间为24小时制的,则使用HH:mm:ss: 代码如下: Date date = new Date(); //12小时制 SimpleDateFormat sdformat12 = new SimpleDateFormat("yyyy-

Android系统修改时间格式为24小时制

1. frameworks/base/packages/SettingsProvider/res/values/defaults.xml 增加<stringname="time_12_24">12</string>   //24小时制的话改为24即可 2. frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java文件下, 在lo

Android开发之获取系统12/24小时制的时间

//通过DateFormat获取系统的时间 String currentTime=DateFormat.format("yyyy-MM-dd hh-mm-ss", new Date()).toString(); currentTime="通过DateFormat获取的时间:\n"+currentTime; //通过SimpleDateFormat获取24小时制时间 SimpleDateFormat sdf=new SimpleDateFormat("yyy

获得系统时间(注意24小时和12小时制)

1 NSDate *senddate=[NSDate date]; 2 NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init]; 3 [dateformatter setDateFormat:@"YYYYMMddHHmmss"]; 4 NSString *currenttime=[dateformatter stringFromDate:senddate]; 上面是24小时制的.如果要改成12小时的H改成小写h. 判断

ios 在中国地区,24小时时间格式 系统设定下 获得12小时制时间的方法

如题,在中国地区,24小时时间格式 系统设定下,如果单单使用 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 之后,无论用hh 还是用K,都无法取得12小时制的时间,都是24小时的. 需要加上一条设定 formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];

C#时间格式转换问题(12小时制和24小时制)

string time = Convert.ToDateTime(date).ToString("yyyy-MM-dd HH:mm");//24小时 string time = Convert.ToDateTime(date).ToString("yyyy-MM-dd HH:mm");//12小时 问题源于:

24小时制转化为12小时制

static void Main(string[] args) { while (true) { int t,n; Console.Write("请输入24小时制时间:"); t = Convert.ToInt32(Console.ReadLine()); if (t>0&&t<6) { Console.WriteLine("现在时间是凌晨:"+t+"时"); } else if (t==0||t==24) { Con

将12小时制改为24小时制

如果不是做项目遇到,我大概永远都不会知道12小时制的上午12点就是夜里零点,囧~(个人习惯24小时制) 首先区分12小时制和24小时制的对应关系,以下按照时间顺序列出了几个关键的时间点: 12小时制 24小时制 上午12:00 0:00 上午12:30 0:30 上午1:00 1:00 -- -- 上午11:59 11:59 下午12:00 12:00 下午12:59 12:59 下午1:00 13:00 -- -- 下午11:59 23:59 上午12:00 0:00 以下代码实现了两种时间之

c# 日期时间格式24小时制

c# 获取系统当前日期时间, 按照2016-05-05-13-00-00格式输出:string dtnow = string.Format("{0:yyyy-MM-dd-HH-mm-ss}", DateTime.Now); //24小时制 按照2016-05-05-01-00-00格式输出:string dtnow = string.Format("{0:yyyy-MM-dd-hh-mm-ss}", DateTime.Now); //12小时制