I followed following approach to achieve this scenario:
Created a DE where i imported all the states and their time difference in GMT. Field :
State, Standard_Time, Day_Light_Saving
Created a sendable DE where i have fields Email_Address, State, Send_Time , Timezone,
Convert_Send_Time . Send_Time will have the time that we will populate according to
IST. As of now, Timezone and Convert_SendTime will be blank.
Created 2 Automations :
i. From this, firstly, the timezone will be populated in sendable DE following this
below query :
Select a.Email_Address, ar.Standard_Timezone as 'Timezone' from
A_Timezone_Refer_POC ar
join A_Timezone_POC a
on ar.State = a.State
ii. After timezone is populated, we will populate the Convert_Send_Time field :
Select Email_Address,
cast(switchoffset(todatetimeoffset(SendTime, '+05:30'), Timezone)as datetime) as
ConvertSendTime
from A_Timezone_POC
** +05:30 is according to IST in GMT. IST time is GMT+05:30. You can specify according to your zone, from which you want to calculate. **
Created a journey : Configured sendable DE, configured wait by attribute before sending
email where the wait by attribute will be configured by Convert_Send_Time field. So,
whenever the journey is started it will wait until the time specified and on the
Convert_Send_time that email will be sent to the subscriber.