Чтобы улучшить ваш вопрос, предлагаю следующую переформулировку: «Здравствуйте. У меня возникла ошибка при попытке отправить запрос к методу GetTechAnalysis. Вот фрагмент кода, который вызывает проблему: ```c# From = Timestamp.FromDateTimeOffset(new DateTime(2023,12,31)), To = Timestamp.FromDateTime(DateTime.Now), ``` Ошибка, которую я получаю: ``` Unhandled exception. System.ArgumentException: Conversion from DateTime to Timestamp requires the DateTime kind to be Utc (Parameter 'dateTime') at Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(DateTime dateTime) at Program.Main(String[] args) in C:\C#_DEV\Test\TinkofTest\Program.cs:line 14 ``` Как мне исправить проблему с преобразованием даты в Timestamp? Я не могу понять, в чем именно проблема.»
Для отправки запроса методом GetTechAnalysis к API Tinkoff.InvestApi с использованием gRPC, вы можете использовать следующий пример кода:
```c#
using Grpc.Net.Client;
using System;
namespace YourNamespace
{
class Program
{
static async Task Main(string[] args)
{
var channel = GrpcChannel.ForAddress("https://api-invest.tinkoff.ru/openapi/grpc");
var client = new TechnicalAnalysisService.TechnicalAnalysisServiceClient(channel);
var request = new GetTechAnalysisRequest
{
From = Timestamp.FromDateTimeOffset(new DateTimeOffset(new DateTime(2023, 12, 31))),
To = Timestamp.FromDateTime(DateTime.UtcNow)
};
var response = await client.GetTechAnalysisAsync(request);
Console.WriteLine(response);
}
}
}
```
Этот код использует gRPC клиент для установления соединения с API Tinkoff.InvestApi и отправки запроса методом GetTechAnalysis. Учитывайте, что в данном примере предполагается, что у вас уже есть сгенерированные gRPC файлы для работы с API Tinkoff.InvestApi.
Что касается вашей ошибки с преобразованием даты в Timestamp, предоставленная вами ошибка связана с тем, что метод FromDateTime требует, чтобы DateTime был в формате UTC. Попробуйте использовать метод DateTime.UtcNow для получения текущей даты и времени в формате UTC. Надеюсь, это поможет вам исправить проблему с преобразованием даты.
Вроде же чёрным по белому написно: <br/> <blockquote><br/> Conversion from DateTime to Timestamp requires the DateTime kind to be Utc (Parameter 'dateTime')<br/> </blockquote> <br/> <br/> <code>Timestamp.FromDateTime(DateTime.Now)</code> <br/> Вот тут надо UtcNow <br/> <br/> <pre><code>Timestamp.FromDateTimeOffset(new DateTime(2023,12,31)),</code></pre> <br/> и вот тут явно указать kind