Date format in ExplorerListGadget

Just starting out? Need help? Post your questions and find answers here.
firace
Addict
Addict
Posts: 899
Joined: Wed Nov 09, 2011 8:58 am

Date format in ExplorerListGadget

Post by firace »

Is there a way of customizing the format of the Date Modified column in an ExplorerListGadget?

For me it always shows as mm/dd/yyyy, while I would like to make it yyyy-mm-dd (my current Windows regional settings).

Code: Select all

If OpenWindow(0, 0, 0, 400, 200, "ExplorerListGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ExplorerListGadget(0, 10, 10, 380, 180, "C:\*.*", #PB_Explorer_MultiSelect)
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Last edited by firace on Fri Mar 16, 2018 12:13 am, edited 1 time in total.
RASHAD
PureBasic Expert
PureBasic Expert
Posts: 4636
Joined: Sun Apr 12, 2009 6:27 am

Re: Date format is ExplorerListGadget

Post by RASHAD »

Workaround

Code: Select all

If OpenWindow(0, 0, 0, 400, 200, "ExplorerListGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ExplorerListGadget(0, 10, 10, 380, 180, "C:\*.*", #PB_Explorer_MultiSelect)
    SetGadgetItemAttribute(0,0,#PB_Explorer_ColumnWidth,0,3)
    AddGadgetColumn(0,4,"Modified Date",100)
    nCol = CountGadgetItems(0)
    For item = 0 To nCol
      text$ = GetGadgetItemText(0, item,3)
      text$ = StringField(text$, 1, " ")
      m$ = StringField(text$, 1, "/")
      m$ = RSet(m$, 2,"0")
      d$ = StringField(text$, 2, "/")
      d$ = RSet(d$, 2,"0")
      y$ = StringField(text$, 3, "/")
      nText$ = y$+"/"+m$+"/"+d$
      SetGadgetItemText(0, item,nText$,4)
    Next
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Egypt my love
firace
Addict
Addict
Posts: 899
Joined: Wed Nov 09, 2011 8:58 am

Re: Date format in ExplorerListGadget

Post by firace »

Thanks! Actually this could be a limitation in the Windows control, not PB.
RASHAD
PureBasic Expert
PureBasic Expert
Posts: 4636
Joined: Sun Apr 12, 2009 6:27 am

Re: Date format in ExplorerListGadget

Post by RASHAD »

No
It is not a matter of limitation
Windows stores File Created,File Accessed,File Modified & MTF last written in the NTFS file entry for every file.
Maybe you need special tool to edit the modified date for each file.
Try a modified version

Code: Select all

Procedure sizeCB()
  ResizeGadget(0,10,10,WindowWidth(0)-20,WindowHeight(0)-40)
EndProcedure

If OpenWindow(0, 0, 0, 400, 200, "ExplorerListGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget)
  ExplorerListGadget(0, 10, 10, 380, 180, "C:\*.*", #PB_Explorer_MultiSelect)
  SetGadgetItemAttribute(0,0,#PB_Explorer_ColumnWidth,80,1)
  SetGadgetItemAttribute(0,0,#PB_Explorer_ColumnWidth,50,2)
  SetGadgetItemAttribute(0,0,#PB_Explorer_ColumnWidth,0,3)
  AddGadgetColumn(0,4,"Modified Date",100)
  nCol = CountGadgetItems(0)
  For item = 0 To nCol
    text$ = GetGadgetItemText(0, item,3)
    m$ = RSet(StringField(text$, 1, "/"),2,"0")
    d$ = RSet(StringField(text$, 2, "/"),2,"0")
    y$ = RSet(StringField(text$, 3, "/"),4,"")
    SetGadgetItemText(0, item,y$+"/"+m$+"/"+d$,4)
  Next
    
BindEvent(#PB_Event_SizeWindow,@sizeCB())
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Quit = 1
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 0
          SetGadgetItemAttribute(0,0,#PB_Explorer_ColumnWidth,0,3)
          nCol = CountGadgetItems(0)
          For item = 0 To nCol
            text$ = GetGadgetItemText(0, item,3)
            m$ = RSet(StringField(text$, 1, "/"),2,"0")
            d$ = RSet(StringField(text$, 2, "/"),2,"0")
            y$ = RSet(StringField(text$, 3, "/"),4,"")
            SetGadgetItemText(0, item,y$+"/"+m$+"/"+d$,4)
          Next
      EndSelect
  EndSelect
Until quit = 1
EndIf
Egypt my love
Post Reply