값을 UTC로 저장할 때 Javascript를 사용하지 않고 사용자에게 현지 시간을 표시 할 수 있습니까?Javascript를 사용하지 않고 ASP.Net에서 현지 시간을 UTC datetime 값으로 렌더링하는 방법은 무엇입니까?
답변
클라이언트가 시간대를 인식하려면 서버 측이 필요합니다. 이 결정을 내리는 데 필요한 일반적인 정보에는 정보가 충분하지 않습니다. 가장 가까운 것은 Accept_Language 헤더로서 실마리를 줄 수는 있지만 충분히 유용하지는 않습니다 (특히 클라이언트가 여러 시간대가있는 국가에있는 경우) .
따라서 사용자에게 시간대가 무엇인지 알려주고 로그온 또는 쿠키를 사용하여 해당 정보를 저장해야합니다.
vb.net, C# 또는 사용하는 .net 언어의 서버 측에서 변환 할 수 있습니다. 당신은 어딘가에 현지 시간으로 개조해야 할 것입니다.
세부 사항없이 매우 광범위한 질문을하므로 서버에서이 작업을 수행하는 방법을 권장 할 수 없습니다.
나는 문제가 당신의 필요를 참조 의견을 바탕으로 편집
당신이 사용자의 시간대는 자바 스크립트없이 무엇인지 알아 내야 할 것입니다. 사용자가 등록 할 때 항상 사용자에게 시간대를 알려달라고합니다.
완벽한 방법이 아닌 한 가지 방법은 사용자가 어디에서 가장 적합한 지 알려주고 언어 설정을 사용하여 세분화 된 기능을 제공하는 지오 -IP 룩업 서비스를 사용하는 것입니다.
이 서버가 클라이언트에 JS : – AnthonyWJones
어떤 시간대 알고 전제로한다. 예, 사용자 프로필에 저장할 시간대가 필요합니다. – annakata
이 당신이 할 수있는 가장 가까운 생각해.
using System.Globalization;
// get the first language from request (en, fr, ru)
var primaryLanguage = Request.UserLanguages.First().Split(";").First();
// find a culture by this language
var culture = new CultureInfo(primaryLanguage);
// if the culture is neutral, try to find the specific one
if (culture.IsNeutralCulture)
culture = CultureInfo.GetCultures(CultureTypes.SpecificCultures).FirstOrDefault(o => o.TwoLetterISOLanguageName == primaryLanguage);
// get the string from a datetime
var datetimeText = culture ? DateTime.Now.ToString(culture) : DateTime.Now.ToString();
감사없이 수집하기 어려울 것 – BlueSky