首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用C#在Xamarin.android中获取错误的UTC日期时间(1970-01-01)

使用C#在Xamarin.android中获取错误的UTC日期时间(1970-01-01)
EN

Stack Overflow用户
提问于 2021-05-18 21:17:18
回答 2查看 82关注 0票数 0

我对UTC日期时间有问题。我有现有的安卓应用程序在Xamarin.android中,有时我会得到错误的日期和时间。我用C#生成协调世界时的时间

代码语言:javascript
代码运行次数:0
运行
复制
  string myUtcTime = DateTime.UtcNow.ToString("yyyy-MM-dd HH\\:mm\\:ss"); 

我将myUtcTime值作为字符串数据类型保存到SQLite数据库列中。然后从SQLite中获取utcTime并将其以JSON体的形式发送到服务器。

代码语言:javascript
代码运行次数:0
运行
复制
  Wrong value is  1970-01-01 03:07:18.000 

我不知道为什么有时候我在服务器上收到1970-01-01。请给我一些建议

EN

回答 2

Stack Overflow用户

发布于 2021-05-18 21:29:01

我的建议是,您需要来回转换(当保存到数据库时,以及当基于您的设计检索时)。

参见下面的示例代码;

代码语言:javascript
代码运行次数:0
运行
复制
 public class DatetimeToStringConverter : IValueConverter
 {

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    if (value == null)
        return string.Empty;

    var datetime = (DateTime)value;
    //put your custom formatting here
    return datetime.ToLocalTime().ToString("g");
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    //Write your custom implementation 
}
 }
票数 0
EN

Stack Overflow用户

发布于 2021-05-18 22:10:44

将datetime转换为字符串以存储在SQLite中,如下所示

代码语言:javascript
代码运行次数:0
运行
复制
string dateTimeInstring = DateTime.UtcNow.ToString();

并将从SQLite检索的datetime转换回DateTime,如下所示

代码语言:javascript
代码运行次数:0
运行
复制
DateTime utcDateTime = Convert.ToDateTime(dateTimeInstring);
DateTime.SpecifyKind(utcDateTime, DateTimeKind.Utc);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67587038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档