14位日期时间格式化两种方法
本帖最后由 Bone 于 2018-10-4 23:18 编辑发现查询出来的时间值在数据库查询中正常
从AU3查出来就是'20181004225519'这样的纯数字的
看了看帮助_DateTimeFormat无法直接对这种字符串进行日期时间的格式化
论坛中搜索看到了方法一
补充了一个方法二
仅做备份
$Value = '20181004225519'
;~ 方法一
If StringLen($Value) = 14 Then
$Data = StringMid($Value, 1, 4) & "-" & StringMid($Value, 5, 2) & "-" & StringMid($Value, 7, 2)
$Time = StringMid($Value, 9, 2) & ":" & StringMid($Value, 11, 2) & ":" & StringMid($Value, 13, 2)
$D_T = $Data & " " & $Time
MsgBox(0, 0, $D_T)
Else
MsgBox(0, 0, '字符串不合法')
EndIf
;~ 方法二
If StringLen($Value) = 14 Then
ConsoleWrite(StringFormat("%04i/%02i/%02i %02i:%02i:%02i",StringMid($Value,1,4),StringMid($Value,5,2),StringMid($Value,7,2),StringMid($Value,9,2),StringMid($Value,11,2),StringMid($Value,13,2)) & @CRLF)
EndIf
$str = '20181004225519'
$str = StringRegExpReplace($str, '^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$', '${1}/${2}/${3} ${4}:${5}:${6}')
If @extended <> 0 Then
MsgBox(0, 0, $str)
Else
MsgBox(16, 0, '非14位数')
EndIf
方法3:
#include <String.au3>
$Value = '20181004225519'
$new=_StringInsert(_StringInsert(_StringInsert(_StringInsert(_StringInsert($Value,'-',4),'-',7),' ',10),':',13),':',16)
MsgBox(0,0,$new)
本帖最后由 Bone 于 2018-10-5 16:56 编辑
2楼3楼的方法也很棒 要不要再来个 StringSplit的 绿色风 发表于 2018-10-5 17:59
要不要再来个 StringSplit的
大神来一个~
页:
[1]