function file_extract_time_from_name,filepath,fullpath=fullpath
nf = n_elements(filepath)
if nf eq 0 then return,!values.d_nan
if keyword_set(fullpath) then bname = filepath else bname = file_basename(filepath)
map = replicate(0b,256)
keep = byte('01234567890_-')
map[keep] = keep
time = replicate(!values.d_nan,nf)
for i= 0L,nf-1 do begin
bn = bname[i]
bbn = map[ byte(bn) ]
w = where(bbn,n)
if n eq 0 then continue
segments = strsplit(string(bbn[w]),'_',/extract)
l = strlen(segments)
w = where( l eq 8 or l eq 6,nw)
if nw eq 0 then continue
tstr = strjoin( segments[w], '_' )
time[i] = str2time(tstr,tformat = 'YYYYMMDD_hhmmss')
endfor
return,time
end