Добавить время на дату? - PullRequest
       6

Добавить время на дату?

0 голосов
/ 03 сентября 2011

Кто-нибудь может придумать эффективный способ добавления временного интервала к дате?

Что-то вроде следующего:

    <cfset foo = now() + createTimeSpan(15,12,30,30)>

IIRC в движке CFML на основе .NET, я мог бы простоиспользуйте date.add (временной интервал) , но я не могу вспомнить эквивалентный ярлык Java прямо сейчас.

Заранее спасибо.

1 Ответ

3 голосов
/ 03 сентября 2011

Что на самом деле вы спрашиваете здесь? С одной стороны, вы пометили его как вопрос CF и используете CFML, который отвечает на ваш собственный вопрос; тогда вы начинаете спрашивать о ярлыке Java?

Если вы хотите знать, как это сделать в CFML, тогда ваш пример кода будет , как вы делаете это в CFML.

Если вы хотите знать, как добавить значение временного интервала CF (которое является просто числовым представлением числа дней) к дате Java, то это будет немного сложнее, потому что методы Calendar, которые я могу найти, все добавляют составные части временного интервала, а не всего временного интервала.

Этот код демонстрирует, возможно, все ответы, которые вы ищете (за исключением того, как сделать это одним ударом с датой / календарем Java):

<cfset dTs = now()><!--- grab now --->
<cfset fTimespan = createTimeSpan(15,12,30,30)><!--- make a timespan --->
<cfset fLater = dTs + fTimespan><!--- add the timespan to now yields a float --->
<cfset sLater = dateFormat(fLater, "yyy-mm-dd") & " " & timeformat(fLater, "HH:MM:SS")><!--- but you can treat a float as a date/time --->
<cfset dLater = createOdbcDateTime(fLater)><!--- or convert it back to a date object --->

<cfset jCal = createObject("java", "java.util.GregorianCalendar").init()><!--- java.util.Date is basically deprecated in favour of calendars --->
<cfset jCal.add(jCal.DAY_OF_MONTH, 15)><!--- one needs to set each part of the timespan separately --->
<cfset jCal.add(jCal.HOUR_OF_DAY, 12)>
<cfset jCal.add(jCal.MINUTE, 30)>
<cfset jCal.add(jCal.SECOND, 30)>
<cfset sJCal = jCal.getTime()><!--- this gets a string that CF can use as a date back out of the calendar --->
<cfset bIsDate = isDate(sJCal)><!--- demonstrate that last statement to be true --->
<cfdump var="#variables#"><!--- and all the results --->

Отвечает ли это тем, каким был ваш вопрос?

...