How to use datestr(now)

5 次查看(过去 30 天)
Íris
Íris 2014-9-29
回答: Thorsten 2014-10-1
How do I change how the date is written when I use datestr?
It displays 29-Sep-2014 but I want it to say 29.september year 2014
?

采纳的回答

José-Luis
José-Luis 2014-9-29
编辑:José-Luis 2014-9-29
vec = datevec(now);
month_list = {'January' 'February' 'March' 'April' 'May' 'June' ...
'July' 'August' 'September' 'October' 'November' 'December'};
your_string = sprintf('%i.%s year %i',vec(3),month_list{vec(2)}, vec(1))
Please accept the answer that best solves your problem.

更多回答(2 个)

Azzi Abdelmalek
Azzi Abdelmalek 2014-9-29
strrep(datestr(now,'dd.mmmm _ yyyy'),'_','year')
  4 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2014-9-29
Using a for loop
month_list = {'January' 'February' 'March' 'April' 'May' 'June' ...
'July' 'August' 'September' 'October' 'November' 'December'};
tic
for k=1:10000
vec = datevec(now);
your_string = sprintf('%i.%s year %i',vec(3),month_list{vec(2)}, vec(1));
end
toc
tic
for k=1:10000
strrep(datestr(now,'dd.mmmm _ yyyy'),'_','year');
end
toc
Elapsed time is 0.788404 seconds.
Elapsed time is 2.663671 seconds.
José-Luis
José-Luis 2014-9-29
I don't see why the comparison should be invalid. It is faster even if I include the cell array generation in the computation time:
tic
month_list = {'January' 'February' 'March' 'April' 'May' 'June' ...
'July' 'August' 'September' 'October' 'November' 'December'};
vec = datevec(now);
your_string = sprintf('%i.%s year %i',vec(3),month_list{vec(2)}, vec(1));
toc
tic
strrep(datestr(now,'dd.mmmm _ yyyy'),'_','year');
toc
Elapsed time is 0.000576 seconds.
Elapsed time is 0.001291 seconds.

请先登录,再进行评论。


Thorsten
Thorsten 2014-10-1
[datestr(now, 'dd.mmmm') ' year ' datestr(now, 'yyyy')]

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by