如何解决有没有办法让用户即使在设置中更改时间也无法修改公共时间
我正在开发一个应用程序,它根据日期和时间将数据放入和获取到 Firebase,我现在的问题是用户可以在设置中修改它,并获取未来的数据或我尝试使用 dateTime 的旧数据.Now 但是可以修改我也试过 datetime.utcNow 但它也可以修改。所以我的问题是我可以解决这个问题,这样用户就不能修改时间,或者即使他们这样做,应用时间也不会受到影响。?
存储到 Firebase 的代码示例。
await CrossCloudFirestore.Current
.Instance
.Collection(DataPaths.NewsFeed)
.Document(guid)
.SetAsync(new {
ID = ticks + id,ProfileImage = prefrences.profileImage,UserName = usernames,Title = title,Date = DateTime.Now.ToString("dd MMM yyyy"),Time = DateTime.UtcNow.ToString("HH:mm:ss"),Details = details,OrderTime = orderTime
});
我正在尝试的另一个示例。
//All 3 Needs sorting/fixing utc vs local/GMT time
//DateTime date = DateTime.UtcNow;
//var act = TimeZoneInfo.ConvertTime(date,TimeZoneInfo.Local);
//Application.Current.MainPage.displayAlert("",act.ToString(),"OK");
解决方法
解决方案是,您应该从 API 而不是从设备获取当前时间。
这样做的方法是将 Date
& Time
设置为从 API 获取的值。
所以我个人喜欢这个http://worldclockapi.com/api/json/est/now
;将此复制到您想要设置日期和时间的代码中,您应该一切正常。
您可以编辑 API URL 以匹配您的时区;假设您想要中央标准时间,那么这就是您的 API URL http://worldclockapi.com/api/json/cst/now
。
您可以随意使用 Google 搜索其他 API。
现在,如何将变量设置为 API 结果值? ~ 像这样:
var url = "http://worldclockapi.com/api/json/cst/now";
var client = new HttpClient();
var currentDateTime = client.Get(url);
await CrossCloudFirestore.Current
.Instance
.Collection(DataPaths.NewsFeed)
.Document(guid)
.SetAsync(new {
ID = ticks + id,ProfileImage = prefrences.profileImage,UserName = usernames,Title = title,Date = currentDateTime.ToString("dd MMM yyyy"),Time = currentDateTime.ToString("HH:mm:ss"),Details = details,OrderTime = orderTime
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。