ICU-5808 Declare a UTF-16 string when available instead of converting a string.
X-SVN-Rev: 22564
This commit is contained in:
parent
a904086007
commit
bee56b37b7
@ -616,10 +616,8 @@ OlsonTimeZone::initTransitionRules(UErrorCode& status) {
|
|||||||
UnicodeString tzid;
|
UnicodeString tzid;
|
||||||
getID(tzid);
|
getID(tzid);
|
||||||
|
|
||||||
UnicodeString _std("(STD)", -1, US_INV);
|
UnicodeString stdName = tzid + UNICODE_STRING_SIMPLE("(STD)");
|
||||||
UnicodeString _dst("(DST)", -1, US_INV);
|
UnicodeString dstName = tzid + UNICODE_STRING_SIMPLE("(DST)");
|
||||||
UnicodeString stdName = tzid + _std;
|
|
||||||
UnicodeString dstName = tzid + _dst;
|
|
||||||
|
|
||||||
int32_t raw, dst;
|
int32_t raw, dst;
|
||||||
if (transitionCount > 0) {
|
if (transitionCount > 0) {
|
||||||
|
@ -47,6 +47,10 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SimpleTimeZone)
|
|||||||
// Gregorian calendar started.
|
// Gregorian calendar started.
|
||||||
const int8_t SimpleTimeZone::STATICMONTHLENGTH[] = {31,29,31,30,31,30,31,31,30,31,30,31};
|
const int8_t SimpleTimeZone::STATICMONTHLENGTH[] = {31,29,31,30,31,30,31,31,30,31,30,31};
|
||||||
|
|
||||||
|
static const UChar DST_STR[] = {0x0028,0x0044,0x0053,0x0054,0x0029,0}; // "(DST)"
|
||||||
|
static const UChar STD_STR[] = {0x0028,0x0053,0x0054,0x0044,0x0029,0}; // "(STD)"
|
||||||
|
|
||||||
|
|
||||||
// *****************************************************************************
|
// *****************************************************************************
|
||||||
// class SimpleTimeZone
|
// class SimpleTimeZone
|
||||||
// *****************************************************************************
|
// *****************************************************************************
|
||||||
@ -1021,8 +1025,6 @@ SimpleTimeZone::initTransitionRules(UErrorCode& status) {
|
|||||||
DateTimeRule* dtRule;
|
DateTimeRule* dtRule;
|
||||||
DateTimeRule::TimeRuleType timeRuleType;
|
DateTimeRule::TimeRuleType timeRuleType;
|
||||||
UDate firstStdStart, firstDstStart;
|
UDate firstStdStart, firstDstStart;
|
||||||
UnicodeString dst("(DST)", -1, US_INV); // These work even if
|
|
||||||
UnicodeString std("(STD)", -1, US_INV); // UCONFIG_NO_CONVERSION is set.
|
|
||||||
|
|
||||||
// Create a TimeZoneRule for daylight saving time
|
// Create a TimeZoneRule for daylight saving time
|
||||||
timeRuleType = (startTimeMode == STANDARD_TIME) ? DateTimeRule::STANDARD_TIME :
|
timeRuleType = (startTimeMode == STANDARD_TIME) ? DateTimeRule::STANDARD_TIME :
|
||||||
@ -1045,7 +1047,7 @@ SimpleTimeZone::initTransitionRules(UErrorCode& status) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// For now, use ID + "(DST)" as the name
|
// For now, use ID + "(DST)" as the name
|
||||||
dstRule = new AnnualTimeZoneRule(tzid+dst, getRawOffset(), getDSTSavings(),
|
dstRule = new AnnualTimeZoneRule(tzid+DST_STR, getRawOffset(), getDSTSavings(),
|
||||||
dtRule, startYear, AnnualTimeZoneRule::MAX_YEAR);
|
dtRule, startYear, AnnualTimeZoneRule::MAX_YEAR);
|
||||||
|
|
||||||
// Calculate the first DST start time
|
// Calculate the first DST start time
|
||||||
@ -1069,7 +1071,7 @@ SimpleTimeZone::initTransitionRules(UErrorCode& status) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// For now, use ID + "(STD)" as the name
|
// For now, use ID + "(STD)" as the name
|
||||||
stdRule = new AnnualTimeZoneRule(tzid+std, getRawOffset(), 0,
|
stdRule = new AnnualTimeZoneRule(tzid+STD_STR, getRawOffset(), 0,
|
||||||
dtRule, startYear, AnnualTimeZoneRule::MAX_YEAR);
|
dtRule, startYear, AnnualTimeZoneRule::MAX_YEAR);
|
||||||
|
|
||||||
// Calculate the first STD start time
|
// Calculate the first STD start time
|
||||||
@ -1077,10 +1079,10 @@ SimpleTimeZone::initTransitionRules(UErrorCode& status) {
|
|||||||
|
|
||||||
// Create a TimeZoneRule for initial time
|
// Create a TimeZoneRule for initial time
|
||||||
if (firstStdStart < firstDstStart) {
|
if (firstStdStart < firstDstStart) {
|
||||||
initialRule = new InitialTimeZoneRule(tzid+dst, getRawOffset(), dstRule->getDSTSavings());
|
initialRule = new InitialTimeZoneRule(tzid+DST_STR, getRawOffset(), dstRule->getDSTSavings());
|
||||||
firstTransition = new TimeZoneTransition(firstStdStart, *initialRule, *stdRule);
|
firstTransition = new TimeZoneTransition(firstStdStart, *initialRule, *stdRule);
|
||||||
} else {
|
} else {
|
||||||
initialRule = new InitialTimeZoneRule(tzid+std, getRawOffset(), 0);
|
initialRule = new InitialTimeZoneRule(tzid+STD_STR, getRawOffset(), 0);
|
||||||
firstTransition = new TimeZoneTransition(firstDstStart, *initialRule, *dstRule);
|
firstTransition = new TimeZoneTransition(firstDstStart, *initialRule, *dstRule);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user