この場合、次のような言い方ができますよ。
ーI have known I am weak for a long time.
「俺は俺が弱いことを長い間知っている」=「俺は俺が弱いことをとうの昔に知っている」
ーI have been aware of my weaknesses all my life.
「俺はずっと俺の弱さに気がついている」=「俺は俺が弱いことをとうの昔に知っている」
ご参考まで!
ご質問ありがとうございます。
・「I've known my weaknesses for a long time now.」
(意味) おれは俺の弱みをとうの昔から知っている。
<例文>I've known my weaknesses for a long time now and I've been working on it.
<訳> おれは俺の弱みをとうの昔から知っていて改善するのに努力してます。
参考になれば幸いです。