我的字符串格式为:'4:33:34 PM',我需要在Apex中将其转换为'16:33:34'字符串格式
答案 0 :(得分:0)
这是解决问题的一种方法:
String TimeString = '4:33:34 PM';
String Regex = '(\\d{1,2}):(\\d{1,2}):(\\d{1,2}) ([PA]M)';
Pattern p = Pattern.compile( Regex );
Matcher m = p.matcher( TimeString );
if ( m.matches() ){
Integer Hours = Integer.valueOf( m.group(1) )
, Minutes = Integer.valueOf( m.group(2) )
, Seconds = Integer.valueOf( m.group(3) )
, PmShift = m.group(4) == 'PM' ? 12 : 0
;
Time t = Time.newInstance( Hours + PmShift , Minutes , Seconds , 0 );
System.debug( (''+t).substring(0,(''+t).indexOf('.')) );
}
基本上,这会将数字和AM / PM字符串分隔为小时,分钟和秒,并使用它们来构建Time
对象。然后,它将采用该Time对象的字符串表示形式,并删除毫秒和时区。