日期格式冲突的有关问题

日期格式冲突的问题?
很郁闷的一件事情,如果Windows操作系统的默认显示的日期格式为yyyy-MM-dd时,软件可以正常使用,而一但遇到操作系统的默认显示日期的格式为MM/dd/yyyy软件就不能正常工作了.只有到windows的区域设置将日期格式改为yyyy-MM-dd才能正常使用,这样操作起来很麻烦(因为我软件中是按yyyy-MM-dd这种格式设置的.)
请问高手们有没有办法解决.或者如何获取系统的日期格式.

------解决方案--------------------
获取系统的日期格式:
DateSeparator: -
ShortDateFormat: yyyy-MM-dd
LongDateFormat: yyyy '年 'MM '月 'dd '日 ' dddd
TimeSeparator: :
TimeAMString: 上午
TimePMString: 下午
ShortTimeFormat: hh:mm
LongTimeFormat: hh:mm:ss

------解决方案--------------------
本月的1日
DateTimePicker1.Date := IncDay(Now, 1 - DayOfTheMonth(Now));
------------------------------
如果LZ非得要用StrToDate,那这样
var
Year, Month, Day: Word;
s: String;
begin
DecodeDate(Now,Year, Month, Day);
s := ShortDateFormat;
s := StringReplace(s, 'yyyy ', FormatFloat( '0000 ', Year), []);
s := StringReplace(s, 'yy ', FormatFloat( '00 ', Year div 100), []);
s := StringReplace(s, 'MM ', FormatFloat( '00 ', Month), []);
s := StringReplace(s, 'M ', FormatFloat( '0 ', Month), []);
s := StringReplace(s, 'dd ', '01 ', []);
s := StringReplace(s, 'd ', '1 ', []);
DateTimePicker1.date:=StrToDate(s);
end;