Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Игры с временнЫми зонами в C#
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. Вот этот-вот кусочек кода возвращет "универсальное время", НО зимнее. Как сделать так, чтобы получать летом летнее, а зимой зимнее? Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 11:14 |
|
||
|
Игры с временнЫми зонами в C#
|
|||
|---|---|---|---|
|
#18+
В смысле, с учётом перевода часов на час вперёд весной и час назад осенью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 14:17 |
|
||
|
Игры с временнЫми зонами в C#
|
|||
|---|---|---|---|
|
#18+
вот есть интересные замечания по этому поводу - DateTime, Serialization and TimeZones A reader asks: We have an issue with the DateTime data type using serialization across timezones. All works well where we are interested in both the date and time. However, when the Date portion is of interest only, for example Birthday, (not many people know the exact time nor do they generally care), so the time portion will be 00:00:00 as initialised. As this is serialized and sent over a timezone this date could be changed to be the previous day, with a time of 23:00:00. If this user then logged into the system in the other time zone they would now see their birthday as being a day earlier and they would complain it was incorrect; rightly so. In our opinion this is not correct, the date should not change when time is irrelevant. As a suggestion it would be good if there was a property on the DateTime to mark it is Date only. This would result in an exception if the time portion was maintained, and the serialization would not change the value over time zones. I gathered some comments from the product team on this that I thought were thoughtful and generally interesting so I am posting them here. This is an issue I have seen a few times before. For V1.0 and V1.1, There is a work-around for XML Serialization. You can indicate in the schema that the DateTime is a Date only. If you start from schema, you should use xsd:date primitive type, to change the object model you can use custom attribute on the member: [XmlElementAttribute(DataType="date")] public DateTime date; or [XmlAttributeAttribute(DataType="date")] public DateTime date; Notice that this will not work for DataSet or SOAP Serializer. Another work around is to call ToLocalTime() on the DateTime before serializing and ToUniversalTime() after serializing. This is sort of cheating because it is not really a UTC date, but it should make the time zone adjustment go away. In a future release we do have planned a solution that is similar but not identical to what you have requested. You can mark a DateTime instance as Local, UTC or Unspecified, and Unspecified means that it should not be serialized with a time zone. Unfortunately it won't magically take effect because it would break compatibility. But there will be ways to opt-in to this behavior for DataSet, XML Serialization and XML Convert. http://blogs.msdn.com/brada/archive/2004/04/13/112784.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 14:28 |
|
||
|
Игры с временнЫми зонами в C#
|
|||
|---|---|---|---|
|
#18+
Ich schätze Ihre Bemühengen, allerdings wäre nicht schlecht zu wissen, WAS SOLL DAS (?), weil ich nicht besonders gut englische Sprache kenne.... Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 14:47 |
|
||
|
Игры с временнЫми зонами в C#
|
|||
|---|---|---|---|
|
#18+
Вобщем основной смысл, мне кажется в этом - Another work around is to call ToLocalTime() on the DateTime before serializing and ToUniversalTime() after serializing. This is sort of cheating because it is not really a UTC date, but it should make the time zone adjustment go away. Ещё один вариант - вызывать ToLocalTime() для DateTime перед сериализацией и ToUniversalTime() после сериализации. Это в некотором роде трюк, поскольку это не UTC дата, но поможет вам убрать корректировку временной зоны. Т.е. попробовать DateTime DT1; DateTime DT=new DateTime(); DT = DateTime.Now; DT1 = DT.ToLocalTime(); label1.Text=DT1.ToUniversalTime().ToString(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 15:25 |
|
||
|
Игры с временнЫми зонами в C#
|
|||
|---|---|---|---|
|
#18+
DateTime DT1; DateTime DT=new DateTime(); DT = DateTime.Now; // получаем местное время, которое на часах в винде видим допустим 14.04.2004 13:32:30 DT1 = DT.ToLocalTime(); // теперь применяем к этому времени ф-ию которая должна "универсальное время" превратить в местное, т.е. если вы в Москве то получите 14.04.2004 17:32:30 (GMT +3 и +1 час летнего времени) label1.Text=DT1.ToUniversalTime().ToString();// теперь применяем к этому времени ф-ию которая должна превратить местное время в "универсальное время", т.е. если вы в Москве то получите 14.04.2004 13:32:30 (GMT -3 и -1 час летнего времени) Без комментариев :) Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 15:40 |
|
||
|
Игры с временнЫми зонами в C#
|
|||
|---|---|---|---|
|
#18+
мда, что-то в этом супе не то ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 16:22 |
|
||
|
Игры с временнЫми зонами в C#
|
|||
|---|---|---|---|
|
#18+
http://search.microsoft.com/search/results.aspx?qu=timezone+daylight&View=msdn&st=b&c=4&s=2 Вот есть ссылка, где daylight - летнее время, т.е. надо кажется рыть в сторону класса TimeZone, больше пока помочь ничем не могу ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 16:31 |
|
||
|
Игры с временнЫми зонами в C#
|
|||
|---|---|---|---|
|
#18+
Ага, большинство источников пишут, что автоматом нельзя получить такой перевод - его надо делать вручную, используя, видимо, эти методы: DateTime.ToUniversalTime DateTime.ToFileTime TimeZone.GetUtcOffset TimeZone.IsDaylightSavingTime TimeZone.ToUniversalTime *** сплошные догадки, сам никогда с временем особо не работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 16:39 |
|
||
|
Игры с временнЫми зонами в C#
|
|||
|---|---|---|---|
|
#18+
да, направление в общем то верное, поигрался я маленько с этим daylight, хотя и без особого успеха..... шутка в том, что поразмыслив пришёл к выводу, что могу прекрасно жить и без летнего времени :) таким образом задачка для меня превращается в чисто академическую, не требующую срочного решения. будет время - поковыряюсь. спасибо за наводки... бум думать.... потом... Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 16:48 |
|
||
|
Игры с временнЫми зонами в C#
|
|||
|---|---|---|---|
|
#18+
вот этих будет достаточно TimeZone.GetUtcOffset // какова разница с "универсальным временем"(с учётом летнего часа если сейчас летнее время)TimeZone.IsDaylightSavingTime // а не летнее ли сейчас время? Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 17:05 |
|
||
|
|

start [/forum/topic.php?fid=20&gotonew=1&tid=1439295]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
91ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 308ms |
| total: | 485ms |

| 0 / 0 |
