Earlier in org-capture-fill-template, there is the following:
(let* (...
(ct (org-capture-get :default-time))
...
The property :default-time defaults to the current time and is overwritten
by file+datetree+prompt,
If ct was passed as a 2nd argument to format-time-string in your code
snippet:
;; The current time
(goto-char (point-min))
(while (re-search-forward "%<\\([^>\n]+\\)>" nil t)
(replace-match (format-time-string (match-string 1) ct) t t))
this should provide the behavior I'm looking for with file+datetree+prompt,
but still use the current time for other capture types. Will this solution
break anything?
Shankar
On Wed, Nov 4, 2015 at 2:15 PM, Nick Dokos <[email protected]> wrote:
> Shankar Rao <[email protected]> writes:
>
> > For the following org capture template:
> >
> > (setq org-capture-templates
> > '(("d" "Date Tree Test" plain
> > (file+datetree+prompt "~/org/testdt.org")
> > "This date should be the date i picked: %<%y%m%d>")))
> >
> > Though this is filed under the correct date in the datetree, no matter
> what date I select in the prompt,
> > the date displayed in the template is the current date. Is this a bug or
> a feature?
> >
>
> It's a feature I guess - org-capture.el says:
>
> ;; The current time
> (goto-char (point-min))
> (while (re-search-forward "%<\\([^>\n]+\\)>" nil t)
> (replace-match (format-time-string (match-string 1)) t t))
>
> and there is no provision for another time to be given here. I don't
> think there is any provision in the template for a time other than the
> current time: at least I can't see a %-escape that takes a different
> time.
>
> --
> Nick
>
>
>