0845 is local rate, 0870 is national rate.
No they are not, and haven't been for many years, and they are not allowed to be described as such (although they often still are). They were originally tied to BT's local and national rates, when such rates still existed. This only ever applied to BT, not any other provider. There has been no difference between the charge for local calls and national calls for many years. There is a single geographic rate that applies to all 01, 02 and 03 numbers*. 0845 and 0870 are special rate numbers that are sometimes included in inclusive packages (but 0844 never is) but are otherwise charged differently from geographic numbers.
*There are some exceptions, e.g. calls to the Channel Islands.