как получить краткое название TimeZoneInfo

Нормальный Ruby способ сделать это должно использовать блок.

, Таким образом, это было бы что-то как:

def weightedknn( data, vec1, k = 5 )
  foo
  weight = yield( dist )
  foo
end

И используемый как:

weightenknn( data, vec1 ) { |dist| gaussian( dist ) }

Этот шаблон используется экстенсивно в Ruby.

13
задан Kumar 9 September 2009 в 22:49
поделиться

1 ответ

К сожалению, я не знаю простого встроенного способа сделать это. Однако вы могли бы собрать что-нибудь самостоятельно. Вот пример:

public static class TimeZoneInfoExtensions {

        public static string Abbreviation(this TimeZoneInfo Source) {

        var Map = new Dictionary<string, string>()
        {
            {"eastern standard time","est"},
            {"mountain standard time","mst"},
            {"central standard time","cst"},
            {"pacific standard time","pst"}
            //etc...
        };

        return Map[Source.Id.ToLower()].ToUpper();

    }

}

Используйте следующее:

string CurrentTimeZoneAbbreviation = System.TimeZoneInfo.Local.Abbreviation();

Если вам нужно больше преобразований, вы можете просто вставить их в словарь карты.

TimeZoneInfo.Id будет строкой, соответствующей заданному ключу в [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Time Zones]. Если вы можете найти соответствующую базу данных в Интернете, содержащую те же идентификаторы, а также сокращения,

9
ответ дан 2 December 2019 в 00:58
поделиться