Используйте getTimezoneOffset (). Это даст вам смещение:
var date = new Date(); //ex 2019-01-18T16:26:44.982Z
var offset = - date.getTimezoneOffset() / 60; //in your case 1
И вы добавите смещение к своей дате.
Если межпроцессное взаимодействие всегда будет сделанным на той же машине, именованные каналы способ пойти, потому что они быстрее, чем другие опции.
Однако, если существует даже малейший шанс, что эта коммуникация могла бы произойти через границы машины в какой-то момент, пойдите с подходом сокета. Для C++ Вам будет нужен winsock2.h заголовочный файл. В C# используйте System.Net.Sockets
пространство имен.
Это было некоторое время, так как я сделал неуправляемый C++, но мое воспоминание - то, что необходимо будет написать меньше кода C++, если Вы создаете сервер на стороне C++ и затем используете TcpClient
класс на стороне C#.
Сокеты являются, вероятно, Вашим лучшим выбором.
С сокетами Ваш не обязательно связанный с обеими программами, находящимися на той же машине.
Кроме того, это, вероятно, будет самая портативная опция (heck, Windows даже имеет выбор () для сокетов).
Сокеты и Именованные каналы являются двумя опциями, хорошо поддерживаемыми в управляемых и неуправляемых средах.
Я сказал бы сокеты и систему обмена сообщениями. Проверьте наш на Google Protocol Buffers.
Используйте или DCOM/RPC или именованные каналы - что-либо еще или небезопасно, hacky, или оба.
Создайте COM-объект Singleton. Поддержите данные в этом COM-объекте, который может быть считан и C++ и приложениями C#.
Существует много способов сделать это, но я думаю, что лучший способ состоял бы в том, чтобы использовать WCF и COM +. При хостинге сервиса в COM + можно получить доступ к нему через WCF в сервисе.NET, и через COM-интерфейсы в неуправляемом коде.
Вы могли бы хотеть проверить следующие разделы документации MSDN для начала работы:
Интеграция сервисов WCF с COM +: http://msdn.microsoft.com/en-us/library/bb735856.aspx
Интеграция с обзором приложений COM +: http://msdn.microsoft.com/en-us/library/ms734723.aspx