Unity3D如何获取时间戳或北京时间

本文实例为大家分享了Unity3D获取时间戳或北京时间的具体代码,供大家参考,具体内容如下

单机游戏因为没有服务器下发时间戳所以要自己获取,当然也可以用现成的时间API来获取。

如果获取本地时间,会导致玩家随意修改日期来达到数据更改,如每日奖品、每日奖励等等。

单机游戏本来就不要网络的,可是获取时间需要网络,这有点矛盾,有没有谁有更好的解决方案呢?

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{

  class Program
  {
    static void Main(string[] args)
    {
      Console.WriteLine( GetBeiJingTime());
      Console.ReadKey();
    }

    public static string GetBeiJingTime()
    {
      bool isget = false;
      string result = string.Empty;
      try
      {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://open.baidu.com/special/time/");//百度北京时间地址
        req.Headers.Add("content", "text/html; charset=gbk");
        HttpWebResponse res = (HttpWebResponse)req.GetResponse();
        Stream stream = res.GetResponseStream();
        StreamReader sr = new StreamReader(stream, Encoding.GetEncoding("gbk"));
        string html = sr.ReadToEnd();
        Func<string,string> f1 = (p) =>{
          Regex reg = new Regex("(?<=baidu_time\\().*?(?=\\))");
          return reg.Matches(p)[0].Value;};
        string time = f1(html).Substring(0, 10);//这里是时间戳
        stream.Dispose();
        sr.Dispose();
        DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
        long lTime = long.Parse(time + "0000000");
        TimeSpan toNow = new TimeSpan(lTime);
        result = dtStart.Add(toNow).ToString("yyyyMMdd");
        isget = true;
      }
      catch (Exception)
      {
      }
      finally
      {
        if (!isget)result = "19700101";//如果没有网络就返回默认
      }
      return result;
    }
  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Unity时间戳的使用方法

    时间戳在游戏开发中虽然是一个比较小的功能?但是如果缺少这个功能就会导致开发遇到困难,为了帮助大家开发,下面就给大家介绍下将时间戳的使用方法,一起来看看吧. 将时间戳转换为时间 publicstatic string getTime(string_time) { stringtimeStamp = _time; DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(newDateTime(1970, 1, 1)); longlTime =

  • Unity3D如何获取时间戳或北京时间

    本文实例为大家分享了Unity3D获取时间戳或北京时间的具体代码,供大家参考,具体内容如下 单机游戏因为没有服务器下发时间戳所以要自己获取,当然也可以用现成的时间API来获取. 如果获取本地时间,会导致玩家随意修改日期来达到数据更改,如每日奖品.每日奖励等等. 单机游戏本来就不要网络的,可是获取时间需要网络,这有点矛盾,有没有谁有更好的解决方案呢? using System; using System.Collections.Generic; using System.IO; using Sys

  • python获取标准北京时间的方法

    本文实例讲述了python获取标准北京时间的方法.分享给大家供大家参考.具体分析如下: 这段python代码主要通过www.beijing-time.org的官网上获取标准的北京时间,如果你的服务器挂在网上,你可以通过这段代码定时获取北京时间,然后更新自己系统的标准时间. import time,httplib def getBeijinTime(): try: conn = httplib.HTTPConnection("www.beijing-time.org") conn.req

  • python实现定时同步本机与北京时间的方法

    本文实例讲述了python实现定时同步本机与北京时间的方法.分享给大家供大家参考.具体如下: 这段python代码首先从www.beijing-time.org上获取标准的北京时间,然后同步获取的北京时间到本地 # -*- coding: utf-8 -*- import time,httplib import threading def getBeijinTime(): try: conn = httplib.HTTPConnection("www.beijing-time.org"

  • C#实现从网络同步标准北京时间的方法

    本文实例讲述了C#实现从网络同步标准北京时间的方法.分享给大家供大家参考.具体分析如下: 这段C#代码可以从http://www.time.ac.cn网站上获取标准的北京时间,只需简单的组合即可让本地服务器实时同步正确的北京时间 #region /// <summary> /// 获取标准北京时间 /// /// </summary> /// /// <returns></returns> /// public static DateTime GetStan

  • 易语言通过百度错误页面获取北京时间的代码

    利用百度取北京时间源码 .版本 2 .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 .局部变量 XML对象, 对象 .局部变量 时间文本, 文本型 .局部变量 网络时间, 日期时间型 .如果真 (XML对象.创建 ("WinHttp.WinHttpRequest.5.1", )) XML对象.方法 ("SetTimeouts", 5000, 5000, 10000, 5000) XML对象.写属性 ("Option", 6, 0) XM

  • java中如何获取时间戳的方法实例

    前言 数字时间戳技术是数字签名技术一种变种的应用.是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数(引用自百度百科) 在java开发过程中经常会遇到统计某一天或是某一个月的数据,因此常常需要获取截取数据的两个时间戳(比如统计今天的数据,则需要获取一个开始时间为今天零点以及一个结束时间为明天零点),然后根据数据相关的时间是否在该时间区间内来判断是否将其计入统计数据中. 一.java获取时间戳 话不多说,首先我们先拿上面的例

  • Python检查和同步本地时间(北京时间)的实现方法

    背景 有时本地服务器的时间不准了,需要同步互联网上的时间. 解决方案 NTP时间同步,找到一些可用的NTP服务器进行同步即可. 通过获取一些大型网站的时间来同步为自己的时间. * 由于NTP时间同步,如果相差比如有好几个小时,那么时间不同步矫正回来其实是非常慢的:我本次主要就是讲第2种方案,通过Python来实现的,可以直接设置为互联网上的时间. 要点描述 假设:百度.淘宝等非常大型的网站的时间是正确的 访问百度.淘宝等网站,它返回的HTTP Header中包含一个时间戳(一般是GMT时间).

  • nodejs如何获取时间戳与时间差

    Nodejs中获取时间戳的方法有很多种,例如: 1.new Date().getTime() 2.Date.now() 3.process.uptime() 4.process.hrtime() 平时想获取一个时间戳的话,用这些方法都可以,那么这些方法有什么区别呢? new Date().getTime()和Date.now() 这些方法是通过node运行环境的系统时间毫秒数, +new Date() 写法的效果和 new Date().getTime() 效果相同. 在需要频繁使用时间戳的场景

  • PHP的时间戳与具体时间转化的简单实现

    三个内置函数: time() //获取UNIX系统时间戳 mktime(hour,minute,second,month,day,year) //将指定时间转化为时间戳 date(时间格式,时间戳) //将时间戳转化为方便阅读的时间 time -> date: $now = time(); echo "时间戳是 " .$now; echo "创建日期是 " . date("Y-m-d h:i:s", $now); 输出: 时间戳是 1404

  • JS简单获取及显示当前时间的方法

    本文实例讲述了JS简单获取及显示当前时间的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>当前时间</

随机推荐