<p>My local library has a 3D printer (Lulzbot Mini) for patrons to use. The prints are limited to 4 hours and if I go after work I really only have two hours before the Library closes. The software at the Library will give an estimated time, but I would like to be able to estimate the time before I get there.</p>

<p>Currently I have been creating my designs in TinkerCad and then I export the STL file. From the STL file I can find online estimators that will tell me how much material but nothing that says how long it will take to print.</p>

<p>Is there a way of calculating the estimated printing time from a STL file for a given printer?</p>

There is no way to estimate the print time of an STL file directly.
The print time is based on the number of instructions in the g-code file plus the time it takes to move the effector (the hot end) around the build area. The only way to compute that is to know what settings their slicer is using and then slice your stl the way they will; and this is assuming that you have the same slicer software. If you manage to do that, then the slicer software will give you an estimate.
Here is what you would need to do:
Get access to the same slicing software, and obtain a copy of
the profile that they use to slice with. The nozzle diameter, feed
rate, layer height, and infill settings will affect the print time.
Import your stl into the sofware and "slice it" There will usually be a large button that is used to generate the g-code. There are quite a few slicers that will output the print time into the text of the g-code. They may also show the print time on the UI during slicing.
alternatively: Email the stl to the staff at the library, and them to generate an estimate for you. They might just do it.
However, that estimate could be incorrect. It will depend on the printer itself. As an example: the time it takes to heat the bed and the hot end is never included in the time estimate the slicer gives.