Don't laugh...

I'm currently battling with my driftwood too. Some people attach a slate tile to the bottom then bury the slate in the substrate, or use rocks to weigh it down. I've got a ziploc baggie of gravel literally strapped to the bottom of mine. It looks kinda ugly, but I'm lost for ideas at the moment. Suction cups work too. I don't have a drill so I was kinda making up things as I went.

As for how long..? It depends on how dry the wood was before it was put into your tank. Mine has been in for a month at least and its still trying float away.

I need to redo the string holding the bag to the wood, but I'm not looking forward to making an utter mess of things trying to get it to sink. I think my fish are still semi-traumatized from that night lol
 
I have a solution for that problem, but it is one you won't like - use Mopani wood instead. It sinks from the get-go. It also lasts a heck of a lot longer. Suckermouth prefer the sandblasted "normal" driftwood however.

You can speed water-logging by boiling (side effect it that it dumps tannins while boiling as well), and/or by drilling holes in larger pieces.
 
I combine the two--I have a chunk of the 'normal' stuff for my chocolate, under a pile of mopani. Make the fish happy, keeps it submerged.
 
AquariaCentral.com