I suspect that Time.parse is just not understanding the "Malay
Peninsula Standard Time" time zone. Or maybe theres something I'm just
not understanding?

It looks like Time.parse is missing the year at the end of the string, observe:

irb(main):001:0> Time.new
=> Wed Jul 19 19:47:57 Malay Peninsula Standard Time 2006

irb(main):002:0> Time.parse "Wed Jul 19 19:47:57 Malay Peninsula
Standard Time 2006"
=> Wed Jul 19 19:47:57 Malay Peninsula Standard Time 2006

irb(main):003:0> Time.parse "Wed Jul 19 19:47:57 Malay Peninsula
Standard Time 2007"
=> Wed Jul 19 19:47:57 Malay Peninsula Standard Time 2006

irb(main):004:0> Time.parse "Wed Jul 19 19:47:57 Malay Peninsula
Standard Time 2012"
=> Wed Jul 19 19:47:57 Malay Peninsula Standard Time 2006

Does this make me the first Ruby user in Singapore? Do I get a prize?

hehe,
-Harold