第一个 a long time 相当于个名词性的东西 做宾语 take就相当于“花。。。时间”, take a long time, 花很长时间。第二个 主谓宾已经全部都有了,i have been here. 我已经在这儿. 如果这个时候想再加点东西表示 “已经来多久了”, 那就用介词for引导出来时间状语,for a long time 修饰动词 have been....
It takes a long time to get there.花了很长时间才到那儿。I have been here for a long time.我在这里呆了很长时间。第一个句型,take,是花了多长时间。比如 it takes me/sb. a hour/a long time to finish my homework/other ...