Column header in XTS and Data frame in R
Because an R xts object stores the date-column in a special column called index, and the programmers who implemented the  xts package have decided  to not print a label such as "Date" in the table header of an xts output. 

When the print() method is called with an xts object as argument, the first column of the output is actually printed without any label, like a rowname "column" of a data frame.

Why? I don't know. Perhaps "Date" is not always right. It could just be a different label that your time series needs (e.g. "Microseconds" for some timeseries object of Sensor measurements)

# returned as data frame by Quandl
 R&gt; str(a)

    'data.frame':   1985 obs. of  8 variables:
     $ Date                : Date, format: "2011-01-03" "2011-01-04" "2011-01-05" "2011-01-06" ...
     $ Open                : num  1154 1146 1097 1074 1045 ...
     $ High                : num  1158 1149 1099 1078 1078 ...
     $ Low                 : num  1139 1098 1065 1047 1041 ...
     $ Last                : num  1140 1107 1069 1050 1042 ...
     $ Close               : num  1145 1104 1069 1053 1049 ...
     $ Total Trade Quantity: num  1379646 4175490 5307600 4769781 6178882 ...
     $ Turnover (Lacs)     : num  15846 46520 57075 50448 65700 ...
     - attr(*, "freq")= chr "daily"

# returned as xts timeseries object

    R&gt; str(ax)
    An ‘xts’ object on 2011-01-03/2019-01-04 containing:
      Data: num [1:1985, 1:7] 1154 1146 1097 1074 1045 ...
     - attr(*, "dimnames")=List of 2
      ..$ : NULL
      ..$ : chr [1:7] "Open" "High" "Low" "Last" ...
      Indexed by objects of class: [Date] TZ: UTC
      xts Attributes:  
     NULL