When I buy on the credit card, at least the Fido MasterCard, they charge me on the posting day, not on the transaction day. So I phone Disney and put money on my vacation. Disney does an authorization and a hold is put for the funds on my card, but no actual money has changed hands (computer systems). That night, Disney (the merchant) will batch up all their credit card transactions and send them on to their bank for processing. Their bank then separates them and sends them to either Visa or MasterCard (or AmEx, etc). The next night, MasterCard sends those transactions on to my issuing bank, in this case, Rogers Bank. When it sees I have a USD transaction, it converts it using the FX rate set by MasterCard for that day, not the date of the transaction. Then the rebates and FX fees are calculated and it's ready for posting to my Fido MasterCard account.
So, 2 days. It's more over a weekend because they don't seem to have Sat or Sun processing. It would also be more if the merchant doesn't submit the transactions on a nightly basis.
Yes, if I buy directly from BMO (my bank), they tell me the rate right away, although only a few years ago, you had to wait a day to find out the exact rate used. They've updated their system.