Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема со временем, на час больше получаю 
:(
    Опции темы
Doc_d0s
Дата 21.11.2006, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: нет
Всего: 3



Код

                 Pdate=File::GetLastWriteTime(dirs[i]);

возвращает значение на час больше фактического...
что делать? просто раньше все было отлично, потом вдруг...

Я так думаю все таки зависит от конкретной машины

есть соображения?
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
mr.DUDA
Дата 21.11.2006, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Юзайте GetLastWriteTimeUtc


--------------------
user posted image
PM MAIL WWW   Вверх
Doc_d0s
Дата 22.11.2006, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: нет
Всего: 3



тогда возникает вопрос, как мне определить по какому мередиану береться время, по гринвичу или по озерам?
И как мне преобразовать время из Utc в локальное?

Это сообщение отредактировал(а) Doc_d0s - 22.11.2006, 07:31
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
mr.DUDA
Дата 22.11.2006, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



В файловых атрибутах всегда хранится время относительно UTC:

Цитата
Platform SDK: Windows System Information 
File Times

A file time is a 64-bit value that represents the number of 100-nanosecond intervals that have elapsed since 12:00 A.M. January 1, 1601 (UTC).


Преобразовать его в локальное время можно так:
Код
DateTime localDateTime = File.GetLastWriteTimeUtc(@"c:\1.txt").ToLocalTime();


Добавлено @ 09:52 
По поводу UTC:
Цитата
С 1900 г средний солнечный день увеличился на 0,002 атомные секунды, и, стало быть, Гринвичское среднее время расходится с международным атомным временем приблизительно на 1 сек за каждые 500 суток. Беря во внимание этот прогрессирующий фазовый сдвиг между двумя шкалами времени и не отказываясь от высокой точности, предлагаемой атомными часами, в 1972 г был найден компромисс, который привел к определению понятия Универсального Координированного Времени (UTC), которое сейчас используется как официальная мера времени в мире. По сути время UTC течет как международное атомное время, а когда разница с Гринвичским временем достигает 1 секунды, к шкале UTC добавляется 1 секунда, которая называется прыгающей (leap second). Таким образом, разница все время поддерживается меньшей, чем 0,9 сек.



--------------------
user posted image
PM MAIL WWW   Вверх
Doc_d0s
Дата 24.11.2006, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: нет
Всего: 3



все равно:
Код


GetLastWriteTimeUtc(files->Dirs[i]).ToLocalTime();


выдает тоже самое что и 
Код


GetLastWriteTime(files->Dirs[i]);

в чем проблема?
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
mr.DUDA
Дата 24.11.2006, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Doc_d0s, в файлах время хранится в формате UTC. Например окно Properties показывает UTC-время, не конвертируя его в локальное время. Отсюда вывод: чтобы результат совпадал с тем, что видим в explorer-е, читать и записывать дату/время из файлов нужно с помощью методов Get/SetxxxTimeUtc, без конвертации в локальное время. Это означает, что ToLocalTime() из примера нужно убрать. Либо, использовать ToLocalTime при чтении и обратное преобразование - при записи.


--------------------
user posted image
PM MAIL WWW   Вверх
Doc_d0s
Дата 24.11.2006, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: нет
Всего: 3



Файлы(картинки) создает левая программ, я не знаю чем она их создает, но в эксплорере правильное время(потому что самой картинке пишется время)...
почему ф-ия возвращает неправильное время(на час больше, зависит от конкретной машины)...
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
Дрон
Дата 24.11.2006, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 93



Цитата(Doc_d0s @  21.11.2006,  20:13 Найти цитируемый пост)
просто раньше все было отлично, потом вдруг...

Часы перевели?  smile 

Не знаю, никак не смог воспроизвести ничего подобного.




--------------------
Да. Именно так.
PM   Вверх
mr.DUDA
Дата 24.11.2006, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Дрон, у тебя временнАя зона +3, вроде. Попробуй сделать File.GetLastWriteTime для любого файла и сравни что получится с тем, что реально показывает эксплорер.


--------------------
user posted image
PM MAIL WWW   Вверх
Doc_d0s
Дата 25.11.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: нет
Всего: 3



Цитата(Дрон @ 24.11.2006,  19:25)
Цитата(Doc_d0s @  21.11.2006,  20:13 Найти цитируемый пост)
просто раньше все было отлично, потом вдруг...

Часы перевели?  smile 

Не знаю, никак не смог воспроизвести ничего подобного.

не переводил, просто начал другой проект и вылезла проблемка(
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
Doc_d0s
Дата 25.11.2006, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: нет
Всего: 3



накидал простой проектик
и выяснил, что косяк только с теми файлами с которыми я работаю (*.jpg)
другие правильно показывают,но в эксплорере все нормально показывает(

Добавлено @ 19:08 
причем с любыми *.jpg  такой косяк(
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
mr.DUDA
Дата 25.11.2006, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Doc_d0s, а может для JPEG показывает метаданные из EXIF ? smile


--------------------
user posted image
PM MAIL WWW   Вверх
Doc_d0s
Дата 25.11.2006, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: нет
Всего: 3



хм...а Эксплорер откуда берет?
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
Дрон
Дата 26.11.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 24
Всего: 93



Цитата(Doc_d0s @  25.11.2006,  18:35 Найти цитируемый пост)
не переводил, просто начал другой проект и вылезла проблемка( 

Я имел ввиду переход на зимнее время. И вообще это шутка была smile

Цитата(mr.DUDA @  24.11.2006,  21:42 Найти цитируемый пост)
Дрон, у тебя временнАя зона +3, вроде. Попробуй сделать File.GetLastWriteTime для любого файла и сравни что получится с тем, что реально показывает эксплорер. 

Показывает одно и то же время. Для любых файлов в любых часовых поясах.

Цитата(Doc_d0s @  25.11.2006,  19:07 Найти цитируемый пост)
и выяснил, что косяк только с теми файлами с которыми я работаю (*.jpg)

Мда... Быть того не может. Что за ОС у тебя?


--------------------
Да. Именно так.
PM   Вверх
Doc_d0s
Дата 26.11.2006, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: нет
Всего: 3



WinXP
а кстати идея с зимним и летним временем это возможно и есть корень проблемы
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.