Mam datę w strefie czasowej innej niż GMT i chcę przekonwertować jej strefę czasową na GMT na szablonie Velocity.
Nie wiem, czy można utworzyć instancję obiektu kalendarza, instancji TimzeZone lub Locale na szablonie Velocity, takim jak
#set ($ tz = java.util.TimzZone.getTimeZone („GMT”))
ponieważ jeśli jest to możliwe, problem można łatwo rozwiązać za pomocą funkcji toDate lub formatowania dostarczonych przez narzędzie DateTool
Odpowiedzi:
0 dla odpowiedzi № 1Okej, więc odpowiadam na własne pytanie. Wygląda na to, że nie możesz utworzyć instancji obiektu, chyba że przekazałeś klasę w kontekście skryptu. Podsumowując, wszystko, co podasz w kontekście, będzie dostępne dla skryptów szablonów, nawet narzędzia, które należy skonfigurować przed użyciem, aby można je było używać w szablonach.
Nie mogę jednak powiedzieć z całą pewnością, jak zachowają się szablony, gdy będą używane w / z plikiem jsp. Mój scenariusz użycia jest inny, gdy próbuję uruchomić skrypt szablonu programowo.
0 dla odpowiedzi nr 2
Nie można tworzyć instancji z prędkością, ale można tworzyć instancję w Javie i wywoływać jej funkcje w szablonie prędkości. Oto przykład dla ciebie.
context.put("GMT", TimeZone.getTimeZone("GMT"))
Teraz możesz użyć $ GMT w szablonie prędkości takim jak ten.
date.format(format,object, locale,$GMT)