He has been in this pair of socks for three days. "change"是一个一时性的动作词,所以在这里不能用"has not changed for three days",那样还把人家累晕菜呢。
关键是看语言环境了,如果2人谈话谈他的话:He hasn't changed his socks for three days。要根据环境的不同来进行表达,