; ;Copyright 1996-2013 United States Government as represented by the ;Administrator of the National Aeronautics and Space Administration. ;All Rights Reserved. ; This software may be used, copied, or redistributed as long as it is not ; sold and this copyright notice is reproduced on each copy made. This ; routine is provided as is without any express or implied warranties ; whatsoever. ; function cmb_date,epochsin,cdate=cdate,format=format0,todms = todms,time_in_julday = time_in_julday ;written and modified 9/03/2007 by Scott Boardsen UMBC/GEST at GSFC ;format='yyyy ddd (mm/dd) hh:mm:ss' epochs = cmb_epoch_modify(epochsin) if cmb_var_type(epochs) ne 'DOUBLE' then return, fix(epochs) if n_elements(format0) ne 0 then format=format0 if n_elements(todms) ne 0 then epochs = cmb_epoch0(2000,1,0d0) + todms if n_elements(epochs) eq 0 then begin print,'datesab:date=datesab(epoch, cdate=cdate, format=format)' print,'format' list = ['yyyy ddd hh mm','yy/ddd/hh:mm','yyyy ddd hh:mm:ss'] for i=0,n_elements(list)-1 do print,list[i] return,1 endif smons=(['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']) smon1s=(['January','Febuary','March','April','May','June','July','August','September','October','November','December']) n = n_elements(epochs) if n ne 1 then dates = strarr(n) else dates='' for ik =0l,n-1 do begin epoch = epochs[ik] if keyword_set(time_in_julday) then epoch = cmb_epoch2jd(epoch,/inverse) cdf_epoch,epoch,yr,month,dom,hr,minu,sec,msec,/break cmb_ical,yr,doy,month,dom,/idoy ;compute doy tod_fracday = (hr*3600d0 + minu*60d0 + sec + msec/1000d0 )/(24*3600d0) if n_elements(format) eq 0 then format='yrdoyhrmin' yroff = 1900 if yr ge 2000 then yroff = 2000 cdate={yr:yr,doy:doy,month:month,dom:dom,hr:hr,min:minu,sec:sec,msec:msec, yroff:yroff} case (format) of 'spice':begin formata = '(i4.4,"-", i3.3," // ",i2.2,":",i2.2,":",i2.2,".",i3.3)' date = string( format= formata , yr, doy, hr,minu,sec, msec) end 'isodate' or 'zulu' or 'yyyy-mm-ddThh:mm:ss.sssZ': $ date = string( format= '(i4.4,"-", i2.2,"-",i2.2,"T",i2.2,":",i2.2,":",i2.2,".",i3.3,"Z")' , yr, month, dom, hr,minu,sec, msec) 'isodate2': $ date = string( format= '(i4.4, i2.2,i2.2,"T",i2.2,i2.2,i2.2,i3.3,"Z")' , yr, month, dom, hr,minu,sec, msec) 'yyyy-mm-ddThh:mm:ss.sss': $ date = string( format= '(i4.4,"-", i2.2,"-",i2.2,"T",i2.2,":",i2.2,":",i2.2,".",i3.3)' , yr, month, dom, hr,minu,sec, msec) 'isodate1' or 'Zulu' or 'yyyy-mm-ddThh:mm:ss.sZ': $ date = string( format= '(i4.4,"-", i2.2,"-",i2.2,"T",i2.2,":",i2.2,":",i2.2,".",i1.1,"Z")' , yr, month, dom, hr,minu,sec, msec/100) 'a': $ date = string( format= '(i4,i4,3i3)' , yr, doy, hr,minu,sec) 'all': $ date = string( $ format= '(i2.2,x,i3.3,x,"(",i2.2,"/",i2.2,")",x,i2.2,":",i2.2," UT")' $ , yr-yroff,doy,month,dom,hr,minu) 'cdf':date = string( yr,month,dom,hr,minu,sec $ ,format= '(i4,"/",i2.2,"/",i2.2,x,i2.2,":",i2.2,":",i2.2)' ) 'pg':date = string( yr,doy,hr,minu $ ,format= '(i4.4," Y ",i3.3," D ",i2.2,":",i2.2 )' ) 'plan': $ date = string( format= '(i4,5i3)' , yr, month,dom, hr,minu,sec) 'plan1': $ date = string( format= '(i2.2,i3.3,x,i2.2,":",i2.2)',yr-yroff,doy,hr,minu) 'plan2': $ date = string( format= '(i3.3,":",i2.2,":",i2.2,":",i2.2)',doy,hr,minu,sec) 'rql': $ date = string( format= '(i3.3,":",2(i2.2,":"),i2.2)' , doy, hr,minu,sec) 'ssc':date = string( yr,doy,hr,minu $ ,format= '(i4.4,x,i3,2(x,i2.2) )' ) 'sscingest': $ date = string( format= '(i2.2,"-",i2.2,"-",i4.4,x,i2.2,":",i2.2,":",f6.3)' , dom, month,yr, hr,minu,sec) 'ddd/yymmdd': $ date = string( format= '(i3.3,"/",i2.2,i2.2,i2.2)' ,doy, yr-yroff,month,dom) 'ddd mm/dd yyyy':date = string( doy,month,dom,yr $ ,format= '(i3.3,x,i2.2,"/",i2.2,x,i4)' ) 'doy': $ date = string( format= '(i3.3)' , doy) 'doy.dd':date=string(doy + tod_fracday, format='(f6.2)') 'ddd.dd':date=string(doy + tod_fracday, format='(f6.2)') 'dom': $ date = string( format= '(i3.3)' , dom) 'doydom': $ date = string( $ format= '(i4,x,i3.3," (",i2.2,"/",i2.2,") ", i2.2,":",i2.2," UT")' $ , yr, doy,month,dom, hr,minu) 'hh': $ date = string( format= '(i2.2)' , hr) 'hh:mm': $ date = string( format= '(i2.2,":",i2.2)' , hr,minu) 'hhmm': $ date = string( format= '(i2.2,i2.2)' , hr,minu) 'hh:mm:ss':date = string( hr,minu,round(sec+msec/1000.) $ ,format= '(I2.2,":",I2.2,":",I2.2)' ) 'hh:mm:ss.sss': $ date = string( format= '(i2.2,":",i2.2,":",i2.2,".",i3.3)' , hr,minu,sec, msec) 'hh HRS UTC MMM dd, yyyy': $ date = string( format= '(i2," HRS UTC ", a3,x,i2.2,",",x,i4.4)' ,hr, smons[month-1], dom, yr ) 'MMM dd, yyyy': $ date = string( format= '(a3,x,i2.2,",",x,i4.4)', smons[month-1], dom, yr ) 'mm:ss': $ date = string( format= '(i2.2,":",i2.2)' , minu,round(sec +msec/1000.)) 'mm:ss.sss': $ date = string( format= '(i2.2,":",i2.2,".",i3.3)' , minu,sec, msec) 'mm:ss.ss': $ date = string( format= '(i2.2,":",i2.2,".",i2.2)' , minu,sec, round(msec/10.)) 'mm:ss.s': $ date = string( format= '(i2.2,":",i2.2,".",i1.1)' , minu,sec, round(msec/100.)) 'ss.sss': $ date = string( format= '(i2.2,".",i3.3)' , sec, msec) 'mm dd yyyy hh mm ss': $ date = string( format= '(i2.2,x,i2.2,x,i4.4," ",i2.2,":",i2.2,":",i2.2)' , month,dom,yr, hr,minu,sec) 'mm/dd/yy':date = string( month,dom,yr-yroff, $ format= '(i2.2,"/",i2.2,"/",i2.2)') 'mm/dd/yyyy':date = string( month,dom,yr, $ format= '(i2.2,"/",i2.2,"/",i4)') 'mmddhhmm':date = string( month,dom,hr,minu, $ format= '(4i2.2)' ) 'MMM dd, yyyy': $ date = string( format= '(x, a3,x,i2.2,",",x,i4.4)' , smons[month-1], dom, yr ) 'MONTH dd, yyyy': $ date = string( format= '(x, a,x,i2.2,",",x,i4.4)' , smon1s[month-1], dom, yr ) 'dd MONTH yyyy': $ date = string( format= '(x, a,x,i2.2," ",x,i4.4)' , smon1s[month-1], dom, yr ) 'MONTH': $ date = string( format= '(a)' , smons[month-1]) 'yy': $ date = string( format= '(i2.2)' , yr-yroff) 'yy-dd.ddd': $ date = string( format= '(i2.2,"-",i3.3,".",i3.3)' , yr-yroff, doy,tod_fracday*1000) 'yy ddd hh:mm': $ date = string( format= '(i2.2," ",i3.3," ",i2.2,":",i2.2)' , yr-yroff, doy, hr,minu) 'yydddhhmm': $ date = string( format= '(i2.2,i3.3,2i2.2)' , yr-yroff, doy, hr,minu) 'yy/ddd/hh:mm': $ date = string( format= '(i2.2,"/",i3.3,"/",i2.2,":",i2.2)' , yr-yroff, doy, hr,minu) 'yymmdd':date = string( yr-yroff,month,dom, $ format= '(i2.2,i2.2,i2.2)') 'yymmddhh':date = string( yr-yroff,month,dom,hr, $ format= '(i2.2,i2.2,i2.2,i2.2)') 'yymmddhhmm':date = string( yr-yroff,month,dom,hr,minu, $ format= '(i2.2,i2.2,i2.2,i2.2,i2.2)') 'yymmddhhmmss':date = string( yr-yroff,month,dom,hr,minu,sec, $ format= '(i2.2,i2.2,i2.2,i2.2,i2.2,i2.2)') 'yydddhh':date = string( yr-yroff,doy,hr $ ,format= '(i2.2,i3.3,i2.2)' ) 'yydddhhmmss':date = string( yr-yroff,doy,hr,minu,sec $ ,format= '(i2.2,i3.3,3(i2.2))' ) 'yydddhhmm ss.sss':date = string( yr-yroff,doy,hr,minu,sec+msec/1000. $ ,format= '(i2.2,i3.3,2(i2.2),f7.2)' ) 'yydddhhmmss.sss':date = string( yr-yroff,doy,hr,minu,sec,msec $ ,format= '(i2.2,i3.3,3(i2.2),".",i3.3)' ) 'yydddhhmm':date = string( yr-yroff,doy,hr,minu $ ,format= '(i2.2,i3.3,2(i2.2) )' ) 'yyyy/mm/dd hh:mm:ss.sss':date = string(yr, month, dom, hr,minu,sec,msec $ ,format= '(i4.4,"/",i2.2,"/",i2.2,"/",x,i2.2,":",i2.2,":",i2.2,".",i3.3)') 'yyyy': $ date = string( format= '(i4)' , yr) 'yyyyddd': $ date = string( format= '(i4,i3.3)' , yr, doy) 'yyddd.fraction': $ date = string( format= '(i2.2,i3.3,".",i8.8)' , yr-yroff, doy, tod_fracday*1d8) 'yyyy_ddd': $ date = string( format= '(i4,"_",i3.3)' , yr, doy) 'yyyydddhh': $ date = string( format= '(i4,i3.3,i2.2)' , yr, doy, hr) 'yyyydddhhmm': $ date = string( format= '(i4,i3.3,2i2.2)' , yr, doy, hr, minu) 'yyyy ddd': $ date = string( format= '(i4,x,i3.3)' , yr, doy) 'yyyy ddd hh': $ date = string( format= '(i4,x,i3.3,x,i2.2)' , yr, doy, hr) 'yyyy ddd hh mm': $ date = string( format= '(i4,x,i3.3,x,i2.2,x,i2.2)' , yr, doy, hr, minu) 'yyyy ddd hh.hhh': $ date = string( format= '(i4,x,i3.3,x,f8.5)' , yr, doy, tod_fracday*24d0) 'yyyy ddd hh mm ss': $ date = string( format= '(i4,x,i3.3,x,i2.2,2(x,i2.2))' , yr, doy, hr, minu, sec) 'yyyy ddd hh:mm': $ date = string( format= '(i4.4," ",i3.3," ",i2.2,":",i2.2)' , yr, doy, hr,minu) 'yyyy ddd hh:mm:ss': $ date = string( format= '(i4.4," ",i3.3," ",i2.2,":",i2.2,":",i2.2)' , yr, doy, hr,minu,sec) 'yyyy mm dd hh mm ss.sss': $ date = string( format= '(i4.4,x, i2.2,x,i2.2,x,i2.2,x,i2.2,x,i2.2,".",i3.3)' , yr, month, dom, hr,minu,sec, msec) 'yyyy mm dd hh mm ss': $ date = string( format= '(i4.4,x, i2.2,x,i2.2,x,i2.2,x,i2.2,x,i2.2)' , yr, month, dom, hr,minu,round(sec +msec/1000.)) 'yyyy-mm-dd':date = string( yr,month,dom, $ format= '(i4.4,"-",i2.2,"-",i2.2)') 'yyyy mm dd ddd hh mm ss.sss': $ date = string( format= '(i4.4,x, i2.2,x,i2.2,x,i3.3,x,i2.2,x,i2.2,x,i2.2,".",i3.3)' , yr, month, dom, doy, hr,minu,sec, msec) 'yyyy mm dd hh:mm:ss.sss': $ date = string( format= '(i4.4,x, i2.2,x,i2.2,x,i2.2,":",i2.2,":",i2.2,".",i3.3)' , yr, month, dom, hr,minu,sec, msec) 'yyyy/mm/dd hh:mm:ss': $ date = string( format= '(i4.4,"/", i2.2,"/",i2.2, x, i2.2,":",i2.2,":",i2.2)' , yr, month, dom, hr,minu,sec) 'yyyy ddd hh:mm:ss.sss': $ date = string( format= '(i4.4,x,i3.3,x,i2.2,":",i2.2,":",i2.2,".",i3.3)' , yr, doy, hr, minu, sec, msec) 'yyyy,ddd,mm,dd,hh,mm,ss.sss':begin format= '(i4,",",i3.3,",",i2.2,",",i2.2, "," ,i2.2, "," ,I2.2,",",I2.2,".",I3.3)' date = string( yr,doy,month,dom,hr,minu,sec,msec,format= format) end 'yyyy ddd hh mm ss.sss': $ date = string( format= '(i4.4,x,i3.3,x,i2.2,x,i2.2,x,i2.2,".",i3.3)' , yr, doy, hr, minu, sec, msec) 'yyyy-ddd::hh:mm:ss.sss': $ date = string( format= $ '(i4.4,"-",i3.3,"::",i2.2,":",i2.2,":",i2.2,".",i3.3)' , $ yr, doy, hr, min, sec, msec) 'yyyy MMM dd hh:mm:ss.sss': $ date = string( format= '(i4.4,x, a3,x,i2.2,x,i2.2,":",i2.2,":",i2.2,".",i3.3)' , yr, smons[month-1], dom, hr,minu,sec, msec) 'yyyymmdd':date = string( yr,month,dom, $ format= '(i4,i2.2,i2.2)') 'yyyy/mm/dd':date = string( yr,month,dom, $ format= '(i4,"/",i2.2,"/",i2.2)') 'yyyymmddhh':date = string( yr,month,dom,hr, $ format= '(i4,i2.2,i2.2,i2.2)') 'yyyymmddhhmm':date = string( yr,month,dom,hr,minu, $ format= '(i4,4(i2.2))') 'yyyymmddhhmmss':date = string( yr,month,dom,hr,minu,sec, $ format= '(i4,5(i2.2))') 'yyyymmddhhmmss.sss':date = string( yr,month,dom,hr,minu,sec,msec/10, $ format= '(i4,5(i2.2),".",i2.2)') 'yyyy,mm,dd,hh,mm,ss.sss':date = string( yr,month,dom,hr,minu,sec,msec, $ format= '(i4,", "4(i2.2,", "),(i2.2),".",i3.3)') 'yyyymmddThh':date = string( yr,month,dom,hr, $ format= '(i4,i2.2,i2.2,"T",i2.2)') 'yyyy-ddd-hh-mm-ss.ss': date = string( yr,doy,hr,minu,sec,msec/10 $ ,format= '(i4,"-",i3.3,3("-",i2.2),".",i2.2)' ) 'yyyydddhhmmss':date = string( yr,doy,hr,minu,sec,msec/10 $ ,format= '(i4,"-",i3.3,3("-",i2.2),".",i2.2)' ) 'yyyydddhhmmsss':date = string( yr,doy,hr,minu,sec,msec $ ,format= '(i4,"-",i3.3,3("-",i2.2),".",i3.3)' ) 'yyyy ddd (mm/dd)':date = string( yr,doy,month,dom $ ,format= '(i4,x,i3.3,x,"(",i2.2,"/",i2.2,")")' ) 'yyyy (mm/dd) ddd.dd':date = string( yr,month,dom,doy+tod_fracday $ ,format= '(i4,x,"(",i2.2,"/",i2.2,")",x,f6.2)' ) 'yyyy ddd (mm/dom)':date = string( yr,doy,month,dom $ ,format= '(i4,x,i3.3,x,"(",i2.2,"/",i2.2,")")' ) 'yyyy ddd.dd (mm/dd)':date = string( yr,doy + tod_fracday,month,dom $ ,format= '(i4,x,f6.2,x,"(",i2.2,"/",i2.2,")")' ) 'yyyy ddd (mm/dom) hh:mm':date = string( yr,doy,month,dom,hr,minu $ ,format= '(i4,x,i3.3,x,"(",i2.2,"/",i2.2,")",x,i2.2,":",I2.2)' ) 'yyyy ddd (mm/dd) hh:mm':date = string( yr,doy,month,dom,hr,minu $ ,format= '(i4,x,i3.3,x,"(",i2.2,"/",i2.2,")",x,i2.2,":",I2.2)' ) 'yyyy ddd (mm/dd) hh:mm:ss.sss':date = string( yr,doy,month,dom,hr,minu,sec,msec $ ,format= '(i4,x,i3.3,x,"(",i2.2,"/",i2.2,")",x,i2.2,":",I2.2,":",I2.2,".",I3.3)' ) 'yyyy ddd (mm/dd) hh:mm:ss.ssssss':date = string( yr,doy,month,dom,hr,minu,sec,msec*1000 $ ,format= '(i4,x,i3.3,x,"(",i2.2,"/",i2.2,")",x,i2.2,":",I2.2,":",I2.2,".",I6.6)' ) 'yyyy ddd mm dd hh mm ss.sss':date = string( yr,doy,month,dom,hr,minu,sec,msec $ ,format= '(i4,x,i3.3,x,"(",i2.2," ",i2.2,")",x,i2.2," ",I2.2," ",I2.2,".",I3.3)') 'yyyy/mm/dd hh:mm:ss':date = string( yr,month,dom,hr,minu,sec $ ,format= '(i4,"/",i2.2,"/",i2.2,x,i2.2,":",I2.2,":",I2.2)' ) 'YYYY-MM-DD/hh:mm:ss':date = string( yr,month,dom,hr,minu,sec $ ,format= '(i4,"-",i2.2,"-",i2.2,"/",i2.2,":",I2.2,":",I2.2)' ) 'yyyy ddd (mm/dd) hh:mm:ss':date = string( yr,doy,month,dom,hr,minu,round(sec+msec/1000.) $ ,format= '(i4,x,i3.3,x,"(",i2.2,"/",i2.2,")",x,i2.2,":",I2.2,":",I2.2)' ) 'yyyy ddd mm dom hh mm':date = string( yr,doy,month,dom,hr,minu $ ,format= '(i4,x,i3.3,4(x,i2.2))' ) 'yyyy ddd (mm/dd) hh:mm:ss':date = string( yr,doy,month,dom,hr,minu,sec $ ,format= '(i4,x,i3.3,x,"(",i2.2,"/",i2.2,")",x,i2.2,":",I2.2,":",I2.2,".",I3.3)' ) 'yyyy ddd hh:mm:ss.sss':date = string( yr,doy,hr,minu,sec,msec $ ,format= '(i4,x,i3.3,x,i2.2,":",I2.2,":",I2.2,".",I3.3)' ) 'yyyy ddd hh:mm:ss':date = string( yr,doy,hr,minu, sec $ ,format= '(i4,x,i3.3,x,i2.2,":",I2.2,":",I2.2)' ) 'yyyy.ddd.hh.mm.ss':date = string( yr,doy,hr,minu,sec $ ,format= '(i4,".",i3.3,".",i2.2,".",I2.2,".",I2.2)') 'yyyy.ddd.hh.mm':date = string( yr,doy,hr,minu $ ,format= '(i4,".",i3.3,".",i2.2,".",I2.2)' ) 'yyyy_ddd_hh':date=string(yr,doy,hr,format='(i4.4,"_",i3.3,"_",i2.2)') 'yyyy ddd hh mm': $ date=string(yr,doy,hr,minu,format='(i4.4," ",i3.3," ",i2.2," ",i2.2)') 'yyyy_ddd_hh_mm': $ date=string(yr,doy,hr,minu,format='(i4.4,"_",i3.3,"_",i2.2,"_",i2.2)') 'yyyydoyhrminsec':date = string( yr,doy,hr,minu,sec,msec/10 $ ,format= '(i4,x,i3,3(x,i2.2),".",i2.2)' ) 'yrdoyhr': $ date = string( format= '(i2.2,i3.3,i2.2)' , yr-yroff, doy, hr) 'yrdoyhrmin': $ date = string( format= '(i2.2,i3.3,2i2.2)' , yr-yroff, doy, hr,minu) 'yrdoy': $ date = string( format= '(i2.2,i3.3)' , yr-yroff, doy) 'yyddd': $ date = string( format= '(i2.2,i3.3)' , yr-yroff, doy) 'yrmmdd':date = string( yr,month,dom, $ format= '(i4,x,i2.2,"/",i2.2," UT ")' ) 'yy ddd (mm/dom) hh:mm':date = string( yr-yroff,doy,month,dom,hr,minu $ ,format= '(i2,x,i3.3,x,"(",i2.2,"/",i2.2,")",x,i2.2,":",I2.2)' ) else:begin date = string( $ format= '(i4,x,i2.2,"/",i2.2," ",i2.2,":",i2.2," UT ")' $ ,yr,dom,month,hr,minu) date = string( format= '(i2.2,i3.3,2i2.2)' , yr-yroff, doy, hr,minu) end endcase dates[ik] = date endfor ;ik return,dates end