Repository: bokeh/bokeh

Issue:
DateRangeSlider incorrect value displayed
#### ALL software version info (bokeh, python, notebook, OS, browser, any other relevant packages)
Bokeh 0.12.9

#### Description of expected behavior and the observed behavior
When using DateRangeSlider, 2017-01-01 00:00:00 through 2017-01-01 23:59:59 displays as 01 Jan 2016. When slider reaches January 2nd, the year changes to 2017.

#### Complete, minimal, self-contained example code that reproduces the issue

```
from datetime import datetime
from bokeh.models.widgets import DateRangeSlider, PreText
from bokeh.layouts import layout
from bokeh.io import curdoc

start = datetime(2017, 1, 1, 0, 0)
end = datetime(2017, 1, 4, 0, 0)

def date_update(attrname, old, new):
    debug.text = str(date_slider.value_as_datetime)

date_slider = DateRangeSlider(value=(start, end), start=start, end=end)
date_slider.on_change('value', date_update)

debug = PreText(text=str(date_slider.value_as_datetime), width=800)

l = layout([date_slider, debug])
curdoc().add_root(l)
```

Code saved as slider.py and run with bokeh serve --show slider.py

#### Stack traceback and/or browser JavaScript console output
solver.js:8 [bokeh] setting log level to: 'info'
client.js:218 [bokeh] Websocket connection 0 is now open
widget_box.js:131 [bokeh] WidgetBox mode is fixed, but no width specified. Using default of 300.
main.js:9 Bokeh items were rendered successfully

#### Screenshots or screencasts of the bug in action
<img width="284" alt="snip_sliderbug1_17-9-12" src="https://user-images.githubusercontent.com/31520015/30338844-d6ab17c6-97a1-11e7-8b50-b72ec045480c.PNG">
<img width="300" alt="snip_sliderbug2_17-9-12" src="https://user-images.githubusercontent.com/31520015/30338849-dba8fa5e-97a1-11e7-81ff-6ab2204fadd0.PNG">
<img width="298" alt="snip_sliderbug3_17-9-12" src="https://user-images.githubusercontent.com/31520015/30338850-ddb0e500-97a1-11e7-94dd-934cd6a2b787.PNG">






Discussion:
I fixed the display on my end. The default format for DateRangeSlider is %d %b %G. By changing the format, January 1st displays correctly. Unless the default is %G for a good reason, it might be a good idea to change it to %Y.

For clarification, this is the only thing I changed:
date_slider = DateRangeSlider(value=(start, end), start=start, end=end, format='%d %b %Y')
@pallgj would you be able to submit a PR to make this change? It would be a big help
@bryevdv Absolutely, would love to help. I can get to it later tonight.
Awesome thanks!

Resolving patch:
diff --git a/bokeh/models/widgets/sliders.py b/bokeh/models/widgets/sliders.py
--- a/bokeh/models/widgets/sliders.py
+++ b/bokeh/models/widgets/sliders.py
@@ -119,7 +119,7 @@ class DateSlider(AbstractSlider):
     The step between consecutive values.
     """)
 
-    format = Override(default="%d %b %G")
+    format = Override(default="%d %b %Y")
 
 class DateRangeSlider(AbstractSlider):
     """ Slider-based date range selection widget. """
@@ -159,4 +159,4 @@ def value_as_datetime(self):
     The step between consecutive values.
     """)
 
-    format = Override(default="%d %b %G")
+    format = Override(default="%d %b %Y")


Test patch: