You can translate the milliseconds to a datetime xml value with the following x-path:
tib:add-to-dateTime(tib:translate-timezone( 1970-01-01T00:00:00Z , tib:get-timezone-from-dateTime(current-dateTime())), 0, 0, 0, 0, 0, (<your input in ms> div 1000))
What this does is:
1) Find your timezone:
tib:get-timezone-from-dateTime(current-dateTime())
2) Move the base date (1970-01-01) to the correct timezone:
tib:translate-timezone( 1970-01-01T00:00:00Z <result above>)
3) Add the number of seconds in your input epoch:
tib:add-to-dateTime(<result above>, 0, 0, 0, 0, 0, (<your input in ms> div 1000))
Notice the downside to this solution is losing the milliseconds precision. The final datetime is in seconds.
If you need to keep the milliseconds in the final result, you are better off delegating this to an external Java library (as someone already suggested.) You can easily make a Java method available in the Designer mapper by importing it through a Java Custom Function resource.