2010-04-09 4 views
1

나는이 2 개의 템플릿 엔진에 대해 아주 간단한 질문을 가지고있다.
지금부터 고정 된 시간으로 미래/과거 날짜를 만들려고합니다. 18 개월 전, 또는 내일Freemarker/Velocity - 날짜 조작

나는 velocity/freemarker 템플릿 (예 : $date.add(2,-18)과 같은) 안에 자바 날짜 객체로 이것을 할 수 있다는 것을 알고 있지만 DateTool 또는 freemarker core로 이것을하고 싶습니다.

이것은 내가 순전히 프레젠테이션으로 보는 것입니다 (비행 예약 양식에서 볼 수있는 기본 날짜를 생각하면됩니다). 그래서 템플릿 엔진이이 작업을 수행 할 수없는 이유는 없습니다.

그래도 가능합니까? 그렇다면 어떻게?

답변

1

속도 도구에는 이러한 방법이 없습니다.

1

freemarker의 경우 아마도 : Built-ins for dates.

+0

이미 문서 페이지를 보았습니다. 날짜 조작에 대한 참조를 찾을 수 없으며, 형식을 지정하는 방법을 놓친 것일까 요? – Razor

+0

죄송합니다, 당신은 자신의 프리메이커 TemplateMethodModelEx를 작성해야한다고 생각합니다.이 게시물을 참조하십시오 : http://thread.gmane.org/gmane.comp.web.freemarker.user/4292 – Istao

+0

에서 두 날짜 사이의 일 계산 그것은 내가 필요로하는 것과는 다른 무언가이지만, 속도 도구와 비교할 때 freemarker는 더 나은 날짜 조작 가능성을 가지고있는 것처럼 보이지 않습니다. 나는이 엔진 중 필요한 것을 할 수 없다고 여기에서 추측하고있다. – Razor

1

Velocity에서도 할 수 있지만 DateTool (Velocity Extras에 속하는)에서는 사용할 수 없습니다.

프레젠테이션 목적으로 만 사용할 수있는 다양한 유틸리티가있는 "형식"개체를 사용하는 것이 좋습니다 (Velocity를 사용하는 다양한 프레임 워크에서 "형식"개체를 볼 수 있음).

코드가 $ format.dateFromNow()처럼 보이므로 여전히 프레젠테이션 방식이 사용됩니다.

2

나는이 게시물 정말 오래 알고 있지만, 미래의 사람들이 여전히 대답을 찾고 : 십팔일 뺄 것, 예를 들어

${(mydate?long - 18 * 86400000)?number_to_date?string("yyyy-MM-dd")} 

: 밀리 세컨드로/날짜를 변환 할 수있는 날짜 조작 mydate에서. (86400000은 하루에 밀리 초 단위의 양입니다.)

+0

이것은 완벽하게 작동했습니다. 감사합니다! – mcryan